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 的构造和析构的核心思想和寄快递拆快递是一样的,尤其是当包裹里面还有包裹。
而计算机网络的七层结构核心思想和寄快递和收快递(写地址,收快递查看地址)是一样的。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值