输出结果:
construct Aconstruct BDestructor BDestructor A
所以要养成好习惯:
- 一个类如果定义了虚函数,则应该将析构函数也定义成虚函数;
- 或者,一个类打算作为基类使用,也应该将析构函数定义成虚函数 。
- 注意:不允许构造函数不能定义成虚构造函数 。
class A {public:virtual void Print( ) = 0 ; //纯虚函数private:int a;};
包含纯虚函数的类叫抽象类- 抽象类只能作为基类来派生新类使用,不能创建抽象类的对象
- 抽象类的指针和引用可以指向由抽象类派生出来的类的对象
A a;// 错,A 是抽象类,不能创建对象A * pa ;// ok,可以定义抽象类的指针和引用pa = new A ; // 错误, A 是抽象类,不能创建对象
推荐阅读
- 这可能是讲分布式系统最到位的一篇文章
- 从原理到实战,彻底搞懂Nginx
- 计算机网络基础知识,仅此一篇足矣 电脑网络知识
- 如何选轮胎?浅显易懂,一篇搞定
- 彻底搞懂String:字符串常量池
- 一篇文章,教你学会Git
- 一篇文章带你吃透,Java界最神秘技术ClassLoader
- 每月都在交社保,大多数人不会正确使用,一篇文章看懂!
- 彻底搞懂MySQL分区
- 一文搞懂SQL中的所有JOIN