1.派生类也不能继承基类的析构函数.

2.与构造函数不同的是,在派生类的析构函数中不用显式地调用基类的析构函数,因为每个类只有一个析构函数,编译器知道如何选择,无需程序员干涉.

3.构造函数和虚构函数的执行顺序:

  • 创建派生类对象时,构造函数的执行顺序和继承顺序相同,即先执行基类构造函数,再执行派生类构造函数。
  • 而销毁派生类对象时,析构函数的执行顺序和继承顺序相反,即先执行派生类析构函数,再执行基类析构函数.

如下:

 #include <iostream>

 using namespace std;

 class A {
public:
A();
~A();
};
A::A() { cout << "A construction" << endl; }
A::~A() { cout << "A destruction" << endl; } class B : public A {
public:
B();
~B();
};
B::B() { cout << "B construction" << endl; }
B::~B() { cout << "B destruction" << endl; } class C : public B {
public:
C();
~C();
};
C::C() { cout << "C construction" << endl; }
C::~C() { cout << "C destruction" << endl; } int main()
{
std::cout << "Hello World!\n";
C c; //先执行A的构造函数然后是B,最后为C. 析构函数则相反
return ;
}

结果:

转载来源:http://c.biancheng.net/view/2276.html

最新文章

  1. 【博客美化】05.添加GitHub链接
  2. Hive Word count
  3. 网站性能评分工具Yslow 使用教程
  4. 推荐一款开源的C#TCP通讯框架
  5. 使用PHP编写发红包程序
  6. (转)MySql开启远程连接权限
  7. ASP.NET MVC 数据分页思想及解决方案代码
  8. hadoop 环境搭建
  9. office如何去除多页签
  10. 百度富文本编辑器ueditor在jsp中的使用(ssm框架中的应用)
  11. ACM 阶乘数位数
  12. [PGM] Exact Inference for calculating marginal distribution
  13. [Swift]LeetCode730. 统计不同回文子字符串 | Count Different Palindromic Subsequences
  14. 为什么选择 Visual Studio Code
  15. 多个css样式合并到一个“目录”css文件中
  16. Rpgmakermv(14)Archeia_Steamworks
  17. maven项目启动报错;class path resource [com/ssm/mapping/] cannot be resolved to URL because it does not exist
  18. poj 1753 2965
  19. 安装部署Apache Hadoop (完全分布式模式并且实现NameNode HA和ResourceManager HA)
  20. for update 和 t.rowid的区别

热门文章

  1. FPM简介(定制rpm包)
  2. beta week 1/2 Scrum立会报告+燃尽图 01
  3. 从零开始のcocos2dx生活(四)ActionManager
  4. leetcode.769旋转字符串
  5. 洛谷$P$4301 $[CQOI2013]$新$Nim$游戏 线性基+博弈论
  6. 「学习笔记」 FHQ Treap
  7. Java基础知识学习(一)--引用
  8. oracle中使用pl/sql进行的文件读写操作
  9. Spring Data JPA使用findAllOrderBy时踩的坑
  10. ubuntu(linux)虚拟主机部署桌面,使用window链接