c++ | 基类析构函数什么时候为虚析构函数

**这其实是一个很经典的问题
因为在 涉及 继承 的时候肯定会考虑
简单来说,其本质原理就是定义的派生类不是定义在栈上而是定义在堆上
也就会出现派生类的对象跑了构造函数,但释放对象的时候没有析构函数,尤其是这个对象是指针类型的时候,会出现内存异常 **

//简单 用伪代码意思意思吧
class base{
public:
	base();
	~base();		//实际上应当修改为 virtual ~base();
	virtual void test() = 0;
};
class drive : pubic base{
public:
	drive();
	~drive();
	void test(){……};
};
int main(){
	drive *bb;
	base *aa = (drive) bb;  
	return 0;
}


实际上,会跑基类的对象的构造和析构,但只会跑派生类的构造而不会跑析构。
还有要注意,
class 的构造和析构的核心思想和寄快递拆快递是一样的,尤其是当包裹里面还有包裹。
而计算机网络的七层结构核心思想和寄快递和收快递(写地址,收快递查看地址)是一样的。

你可能感兴趣的:(c++,java,开发语言)