永远让基类拥有virtual的destructor

Scott Meyers:世界顶级的C++软件开发技术权威之一。他是两本畅销书Effective C++和More Effective C++的作者,以前曾经是C++ Report的专栏作家。他经常为C/C++ Users Journal和Dr. Dobb's Journal撰稿,也为全球范围内的客户做咨询活动。他也是Advisory Boards for NumeriX LLC和InfoCruiser公司的成员。他拥有Brown University的计算机科学博士学位。

 

据说这小子说过如题的话,我觉得还是有点道理。

最近写个程序,基类指针指向一个new动态分配的子类对象,释放时子类的析够函数没被调用,纳闷了。

 

Base *p_base = new Derived();

delete p_base;

我就用向下类型转换来解决这个问题,但心中总有些犹豫。

delete dynamic_cast<Derived *>(p_base);

很多时候会忘记这个转换的,那么少了个析够函数的调用会导致诸多问题,有没有自动的解决办法呢,自己也没有多想,原来是基类的析够函数没有声明成虚拟的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值