virtual析构函数 简单的不能再简单的问题,但原理是什么呢?
class str
{
public:
str(){cout<<"构造str \n";}
virtual ~str(){cout<<"~str \n";}//1:为什么这里要+virtual才可以执行析够
virtual f(){cout<<"str f\n";}
};
class nu:public str
{public:
nu(){cout<<"构造nu \n";}
~nu(){cout<<"~nu \n";}
virtual f(){cout<<"nu f\n";}
};
void main()
{
str *z=new nu; //在base class 指向derived class 的时候为什么要把析构函数设置成虚才可以执行虚类析构函数。
delete z;
}