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
原文链接: https://www.cnblogs.com/ArrowToLanguage/p/12286216.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/192902
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!