构造和析构的顺序
来源:互联网 发布:腾讯充值软件 编辑:程序博客网 时间:2024/05/20 23:32
转自:http://www.nowcoder.com/test/question/done?tid=419355&qid=15301#summary
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
28
29
30
31
32
33
34
35
36
37
38
# include <iostream>
using namespace std;
class
A
{
public
:
A() { cout<<
"create A"
<<endl; }
A(
const
A& other){ cout<<
"copy A"
<<endl;}
//复制构造函数
~A() { cout<<
"~A"
<<endl; }
};
class
C
{
public
:
C() { cout<<
"create C"
<<endl; }
C(
const
A& other){ cout<<
"copy C"
<<endl;}
//复制构造函数
~C() { cout<<
"~C"
<<endl; }
};
class
B:
public
A
{
public
:
B()
{
cout<<
"create B"
<<endl;
}
~B()
{
cout<<
"~B"
<<endl;
}
private
:
C _a;
};
int
main(
void
)
{
B b;
cout<<
"------------------------"
<<endl;
}
上面的输出结果为
create A
create C
create B
------------------------
~B
~C
~A
先构造父类A,再构造成员变量C,最后才是构造自己B
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);
}
1 先构造 A ,2 再继承父类构造A,3 拷贝构造b的成员A _a , 4 在构造B
所以析构 ~B ~A ~A ~A
0 0
- 构造和析构的顺序
- 构造和析构的顺序
- C++ 构造函数的构造顺序和析构函数的析构顺序
- 再探Delphi2010 Class的构造和析构顺序.
- 构造函数和析构函数的执行顺序
- 类全局变量的构造和析构顺序
- c++对象成员变量的构造和析构顺序
- 关于构造函数和析构函数的调用顺序
- C++类的构造和析构顺序
- C++构造函数和析构函数的调用顺序
- C++构造函数和析构函数的调用顺序
- 构造函数和析构函数的执行顺序相反
- 复合对象的构造和析构顺序
- 关于构造函数和析构函数的执行顺序
- 析构函数和构造函数的调用顺序
- 调用构造函数和析构函数的顺序
- 构造函数和析构函数的调用顺序
- 强化练习1--构造和析构的调用顺序
- 代码重构-MVC框架
- C# 学习笔记 二
- [LeetCode][Java] Flatten Binary Tree to Linked List
- 解密JS eval
- Sublime Text2中的快捷键一览表(Sublime 键盘快捷键大全 )
- 构造和析构的顺序
- Online Judge System For SzNOI 题库 语法百题 c++ d010
- JavaBean & super & this
- 周期串
- C语言小程序源码
- HDOJ 2015 偶数求和(水)
- 字节对齐 __attribute__((packed))
- Socket编程之非阻塞connect
- YII2项目加入其它插件