#include <iostream.h>
class Base{
public:
virtual ~Base(){ //如果不声明为虚析构函数,则只能析构基类,派生类不能析构,造成内存泄露
cout<<"Base destructor\n";
}
};
class Derived:public Base{
public:
Derived();
~Derived();
private:
int *i_pointer;
};
Derived::Derived(){
i_pointer=new int(0);
}
Derived::~Derived(){
cout<<"Derived destructor\n";
delete i_pointer;
}
void fun(Base *b){
delete b;
}
int main(){
Base *b=new Derived();
fun(b);
}
虚析构函数
最新推荐文章于 2025-06-29 22:29:39 发布