虚构析函数与普通构析函数有什么区别
delete p 执行后先后输出 son 和 father ;但如果base类的构析函数的virtual去掉以后只输出father 为什么?构析函数是先调用子类再调用父类这个我知道不用解释,指针是指向父类的类型没有virtual的情况下只有父类的析构函数被调用这个可以理解。我的疑惑是为何父类构析函数加个virtual会导致son会输出classBase{public:virtual ~Base(){std::out<<”father”<<std::endl;}}classDerived: publicBase{public:~Derived(){std::out<<”son” <<std::endl;}}Base* p=newDerived();delete p;