纯虚函数
来源:互联网 发布:高大上简历 知乎 编辑:程序博客网 时间:2024/05/28 05:17
问题1:纯虚函数的作用是什么?即什么情况下需要把函数定义为纯虚函数?
问题2:析构函数可以是虚函数,但析构函数可以是纯虚函数吗?
本章结论
答案1:纯虚函数的作用是防止类被实例化。当我们不想某个类被实例化时,可以在类中声明纯虚函数
答案2:析构函数可以是纯虚函数,但一定要实现。否则派生类被删除的时候,派生类的析构函数调用基类的析构函数就会发生错误。
-------------------------------------------------------------------------------
纯虚函数的定义是在函数的前面加上virtual关键字,在函数括号后面加上‘=0’。纯虚函数可以被实现,所以“纯虚函数就是没有被实现的虚函数”是错误的,纯虚函数就是看虚函数声明的后面有没有'=0'。相反,虚函数则一定要被实现。
请看如下代码:
class A{public: virtual ~A()=0; virtual void a(){ cout << "A::a()" << endl; }};A::~A(){ cout << "~A()" << endl; }class B : public A{public: ~B(){ cout << "~B()" << endl; } void a(){ cout << "B::a()" << endl; }};int main(){ A* ptr = new B(); ptr -> a(); delete ptr; return 0;}输出是
B::a()
~B()
~A()
0 0
- 纯虚函数
- 纯虚函数
- (纯)虚函数意义
- 纯虚函数
- c++纯虚函数
- 纯虚函数(转)
- 纯虚函数
- 纯虚函数
- C++ 纯虚函数
- c++ 纯虚函数
- 纯虚函数
- 纯虚函数使用
- 什么是纯虚函数?
- 纯虚函数
- 纯虚函数
- 纯虚函数
- 纯虚函数概念
- c++ 纯虚函数
- 资源隔离调度算法测试(isolated_scheduler)及openstack集群开发环境搭建
- PHP封装客户端推送程序
- android 系统资源的加载和获取
- 开始编写sass
- 网络编程中设计并发服务器,使用多进程与多线程有什么区别?
- 纯虚函数
- 定时器实现动画的一个例子
- ZOJ 1610 Count the Colors(线段覆盖着色:离散化)
- CentOS下如何完全卸载MySQL?解决卸载不干净的问题
- ios Category作用
- 王利芬语录
- 网络编程学习笔记(服务器端进程终止)
- Hello world
- 博客中使用latex写公式