纯虚析构函数
来源:互联网 发布:域名推广方案 编辑:程序博客网 时间:2024/05/15 06:06
纯虚析构函数
原来一直对虚析构函数的概念理解有所偏差,今天与同学讨论方知有误,特摘抄一段《Effective C++》中第14条条款的一部分,既是对虚析构函数的彻底理解,亦是对纯虚析构函数作用的解释。
在某些类里声明纯虚析构函数很方便。纯虚函数将产生抽象类——不能实例化的类(即不能创建此类型的对象)。有些时候,你想使一个类成为抽象类,但刚好又没有任何纯虚函数。怎么办?因为抽象类是准备被用做基类的,基类必须要有一个虚析构函数,纯虚函数会产生抽象类,所以方法很简单:在想要成为抽象类的类里声明一个纯虚析构函数。
这里是一个例子:
class awov {
public:
virtual ~awov() = 0; // 声明一个纯虚析构函数
};
这个类有一个纯虚函数,所以它是抽象的,而且它有一个虚析构函数,所以不会产生析构函数问题。但这里还有一件事:必须提供纯虚析构函数的定义:
awov::~awov() {} // 纯虚析构函数的定义
这个定义是必需的,因为虚析构函数工作的方式是:最底层的派生类的析构函数最先被调用,然后各个基类的析构函数被调用。这就是说,即使是抽象类,编译器也要产生对~awov的调用,所以要保证为它提供函数体。如果不这么做,链接器就会检测出来,最后还是得回去把它添上。
- 虚析构函数、纯虚析构函数
- 虚析构函数,纯虚析构函数~~~
- 虚析构函数、纯虚析构函数、虚构造函数
- 虚析构函数、纯虚析构函数、虚构造函数
- 虚析构函数、纯虚析构函数、虚构造函数
- 纯虚析构函数
- 纯虚析构函数
- 纯虚析构函数
- 纯虚析构函数
- 纯虚析构函数
- 纯虚析构函数
- 纯虚析构函数
- 虚析构函数、纯虚析构函数 理解
- C++虚析构函数、纯虚析构函数
- C++虚析构函数、纯虚析构函数
- C++虚析构函数、纯虚析构函数
- C++虚析构函数、纯虚析构函数
- C++ 虚析构函数、纯虚析构函数
- 2013多玩YY-校招-分割字符串
- Fibonacci Numbers
- DSG-RealSync Oracle数据库同步复制及容灾技术简述
- 两个窗口之间传递信息2
- 置顶] 计算机视觉、机器学习相关领域论文和源代码大集合--持续更新……
- 纯虚析构函数
- woj 1166 字符串 二叉树
- 给Magento系统定期瘦身,加快运行速度
- python初识1
- VB.net SQL数据库操作
- 周爱民对提升程序员自身技术能力的建议
- 微信遥控器
- 在Java中使用定时任务的最佳实践
- matlab 精简版imshow等函数不能使用