首页 > 代码库 > 条款7:为多态基类析构函数声明为virtual
条款7:为多态基类析构函数声明为virtual
基类指针指向子类对象。
子类对象必须位于堆。因此为了避免泄漏内存资源,当指针不使用时,delete掉每一个对象非常重要。
但是如果基类的析构函数不声明为virtual。那么指向子类对象的指针delete时,析构掉的成分都是基类的,而子类的成分没有被识别出来,而未被析构掉。这样就造成资源浪费。
给基类析构函数声明为virtual,那么delete对象时,就会是你希望的那样,它会销毁整个对象,包括所有继承类(drived class)的成分。
析构时调用顺序:先调用最深层次的派生类的析构函数,依次向上调用base类的析构,最后调用最先定义的基类的析构函数。
条款7:为多态基类析构函数声明为virtual
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。