C++虚析构函数那点事

Posted on 2013-05-28 13:32  edwater  阅读(113)  评论(0)    收藏  举报

       在C++中虚析构函数的作用是当删除指向基类的指针时,会调用基类的析构函数,析构基类的成员变量,而当对象的类型是派生类时,就无法正确析构。而虚析构函数就是为了保证能运行正确的析构函数。

       下面是我的个人见解:

       C++的虚析构函数还可以定义关于继承关系的行为,在cocos2d-x中CCObject、CCNode、CCLayer等等这些类中的析构函数都为虚析构函数,也就是说当你继承他们的时候,可以正确的析构基类以及派生类,也就是说从框架设计使用上允许你继承这个类并使用。而CCArray、CCDictionary等等的析构函数都不是虚析构函数,当你继承他们的时候是无法正确析构的,也就是说作者并不希望(或者说不允许)你继承他们。

       当学习了一短时间cocos2d-x的时候,想继承所提供的类并加入自己需要的功能时,先看看作者是否有意愿让你改。如果不让改的话,大部分可能是错误的使用。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3