C++语法小记---继承中的构造和析构顺序

继承中构造和析构的顺序
  • 先父母,后客人,最后自己

  • 静态变量和全局变量在最开始

  • 析构和构造的顺序完全相反

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 class Global
 7 {
 8 public:
 9     Global()
10     {
11         cout<< "Global()" << endl;
12     }
13     
14     ~Global()
15     {
16         cout<< "~Global()" << endl;
17     }
18 };
19 
20 
21 class Other
22 {
23 public:
24     Other()
25     {
26         cout<< "Other()" << endl;
27     }
28     
29     ~Other()
30     {
31         cout<< "~Other()" << endl;
32     }
33 };
34 
35 class Parent
36 {
37 public:
38     Parent()
39     {
40         cout<< "Parent()" << endl;
41     }
42     
43     ~Parent()
44     {
45         cout<< "~Parent()" << endl;
46     }
47 };
48 
49 class Child : public Parent
50 {
51     Other other;
52 public:
53     Child()
54     {
55         cout<< "Child()" << endl;
56     }
57     
58     ~Child()
59     {
60         cout<< "~Child()" << endl;
61     }
62 };
63 
64 Global gobal;
65 
66 int main()
67 {   
68     Child c;    //构造顺序 Global() Parent() Other() Child()
69                 //析构顺序 ~Global() ~Child()  Other() Parent() 
70     
71     return 0;
72 }