1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
class A { public : A() { } ~A() { cout<< "~A" <<endl; } }; class B: public A { public : B(A &a):_a(a) { } ~B() { cout<< "~B" <<endl; } private : A _a; }; int main( void ) { A a; //很简单,定义a的时候调用了一次构造函数 B b(a); } |
output:
~B
~A
~A
~A
解析:
基类构造析构函数、子类构造析构函数和子类成员变量构造析构函数的调用顺序
原文:http://www.cnblogs.com/upup-2015/p/5050379.html