析构函数里可以调用虚函数嘛
class test
{
virtual void fun(){}
public:
~test
{
fun();
}
}
问题1:这个代码对吗?
问题2; 对象是什么时候被销毁的,是析构函数执行完毕,才被销毁的么?
还是进入析构函数,就开始销毁了一些成员啊,什么的?
[解决办法]
#include <iostream>
class Base
{
public:
virtual void fun()
{
std::cout << "Base fun\n";
}
virtual ~Base(){this ->fun();}
};
class Derived:public Base
{
public:
void fun()
{
std::cout << "Derived fun\n";
}
};
int main()
{
Base *ptr(new Derived);
// ptr->fun();
delete ptr;
return 0;
}