您的位置:首页 > 编程语言 > C语言/C++

effective c++ 条款7,8(为多态基类声明virtual析构函数,别让异常逃离析构函数)

2017-04-11 11:41 225 查看






若gettimekeeper指针指向atomicclock对象,上述代码执行时,atomicclock的成员变量有可能没被销毁,而其析构函数也未被执行,但是基类已经被销毁。可能会引起资源泄漏

解决方案:给基类一个virtual析构函数



加上关键字之后,会销毁整个对象,包括派生类对象

添加virtual关键字会增加对象的体积,因为出现了虚函数表和虚函数指针,所以,当一个类不作为基类的时候,不要加virtual关键字给析构函数

析构函数的运作方式:最深层次派生的类的析构函数最先调用,然后是每一个基类的析构函数



析构函数绝对不要有异常
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: