64,685
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
class animal
{
public:
animal()
{
std::cout<<"animal init..."<<std::endl;
}
//virtual
~animal()
{
std::cout<<"animal delete..."<<std::endl;
}
};
class bear : public animal
{
public:
bear()
{
std::cout<<"bear init..."<<std::endl;
}
//virtual
~bear()
{
std::cout<<"bear delete..."<<std::endl;
}
};
class panda : public bear
{
public:
panda()
{
std::cout<<"panda init..."<<std::endl;
}
~panda()
{
std::cout<<"panda delete..."<<std::endl;
}
};
int main()
{
bear *a = new panda;
//animal *a = new panda;
delete a;
}
A* p =...
detele p; //A及其基类的析构是会被调用,*p的动态类型的析构函数不会被调用
前提:析构函数非虚