为多态基类声明virtual析构函数
来源:互联网 发布:homer仿真软件 编辑:程序博客网 时间:2024/05/17 08:36
为多态基类声明virtual析构函数(Declare destructors virtual in polymophic base classes.)
如果base class带有一个non-virtual析构函数,则当一个derived class经由base class指针删除的结果是为定义的,会造成对象的局部销毁:base class部分被销毁,而derived部分为被销毁。
无端的为class声明virtual析构函数,会增加对象的大小,是某些操作无法进行(主要是涉及内部细节的转换)。
只有当class内至少含有一个virtual函数时,才为他声明virtual析构函数。
不要集成任何没有virtual析构函数的class。c++没有提供类似java的禁止派生的机制。
析构函数总是最深层次的析构函数被调用,然后才是base class的析构函数被调用。
给base classes一个virtual析构函数,这个规则只适用于polymorphic(带多态性质)base classes身上。目的是通过base classes接口处理derived classes对象。
并发所有的baseclasses都被用来做多态用用途。非多态用途的base classes不需要virtual析构函数。
注意:
Ø polyphonic(带多态性质的)base classes应该声明一个virtual析构函数。如果class带有任何virtual函数,则应该拥有一个virtual析构函数。
Ø Classes的设计目的如果不是作为base class使用,或者不是为了多态性(polyphonically),就不应该声明virtual析构函数。
- 为多态基类声明virtual析构函数
- 为多态基类声明VIRTUAL析构函数
- 为多态基类声明virtual析构函数
- 为多态基类声明virtual析构函数
- 为多态基类声明virtual析构函数
- 为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 条款7:为多态基类声明VIRTUAL析构函数
- EffictiveC++为多态基类声明virtual析构函数
- 条款7:为多态基类声明virtual析构函数
- 条款:07 为多态基类声明virtual析构函数
- item7: 为多态基类声明virtual析构函数
- 关于多态基类的析构函数声明为virtual
- 条款7:为多态基类声明virtual析构函数
- 条款07:为多态基类声明virtual析构函数
- 7、为多态基类声明virtual析构函数
- tip7:为多态基类声明virtual析构函数
- 条款7:为多态基类声明virtual析构函数
- 一个关于无边框拉大小的问题
- Java SE 6中 XML 数字签名的标准 Java 接口
- 了解C++默默编写并调用那些函数
- BW:Difference between BW 3.5 and BI 7.0
- 建立安全的AXIS服务(上)
- 为多态基类声明virtual析构函数
- SQL+C#打包问题
- 架构师备考准备
- 认识 p-unit : 一款开源的性能测试工具
- 这里的很不错啊
- 若不想使用编译器自动生成的函数,就应该明确拒绝
- 集成电路上面标的各种术语,留作翻译用
- 《人月神话》2010-11-11
- 全面认识JUnit 4的新特征