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

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 }

结果:

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

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

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

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/192902

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午6:12
下一篇 2023年2月12日 下午6:12

相关推荐