首页 > 编程语言 > 详细

C++基类和派生类的析构函数

时间:2020-02-09 10:00:33      阅读:64      评论:0      收藏:0      [点我收藏+]

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

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

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

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

如下:

 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 class A {
 6 public:
 7     A();
 8     ~A();
 9 };
10 A::A() { cout << "A construction" << endl; }
11 A::~A() { cout << "A destruction" << endl; }
12 
13 class B : public A {
14 public:
15     B();
16     ~B();
17 };
18 B::B() { cout << "B construction" << endl; }
19 B::~B() { cout << "B destruction" << endl; }
20 
21 class C : public B {
22 public:
23     C();
24     ~C();
25 };
26 C::C() { cout << "C construction" << endl; }
27 C::~C() { cout << "C destruction" << endl; }
28 
29 int main()
30 {
31     std::cout << "Hello World!\n";
32     C c;    //先执行A的构造函数然后是B,最后为C. 析构函数则相反
33     return 0;
34 }

结果:

 

技术分享图片

 

 

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

 

C++基类和派生类的析构函数

原文:https://www.cnblogs.com/ArrowToLanguage/p/12286216.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!