C++继承关系中构造函数的调用顺序
来源:互联网 发布:2017淘宝晚会直播 编辑:程序博客网 时间:2024/06/08 06:37
如果A为基类,B继承自A,C继承自B和A,那么在实例化C时,它们各自的构造函数的调用顺序是什么?
一般性规则:
1. 在调用构造函数前先调用父类的构造函数
2. 如果是多重继承,调用父类构造函数的顺序是自左向右
3. 此子而父递归以上两条
如下代码:
01
/**
02
* 继承关系中,构造函数的调用顺序及调用次数
03
*
04
* A
05
* /|
06
* B |
07
* \|
08
* C
09
*/
10
11
#include <stdio.h>
12
13
class
A
14
{
15
public
:
16
A() {
puts
(
"A"
); }
17
virtual
~A(){}
18
};
19
20
class
B :
public
A
21
{
22
public
:
23
B() {
puts
(
"B"
); }
24
virtual
~B(){}
25
};
26
27
class
C :
public
B,
public
A
28
{
29
public
:
30
C() {
puts
(
"C"
); }
31
virtual
~C(){}
32
};
33
34
int
main()
35
{
36
C c;
37
return
0;
38
}
结果如下:
A
B
A
C---------------------------------------------
原文地址:http://cbug.cn/blog/2010/07/22/36.html
---------------------------------------------
- Java中继承关系的构造函数的调用顺序
- C++继承关系中构造函数的调用顺序
- 【c++继承】继承关系中派生类对象构造函数和析构函数调用顺序
- C++继承中构造函数调用顺序
- java关于继承中构造函数的调用顺序
- C++中多重继承构造函数调用的先后顺序
- java继承的构造函数调用顺序
- Java继承关系构造函数的调用
- 继承关系中构造方法的调用
- 看C++中构造函数的调用顺序
- C++继承中构造函数、析构函数调用顺序及虚函数的动态绑定
- 【c++】构造函数调用顺序的研究
- JAVA继承关系中静态代码块、非静态代码块,构造函数的执行顺序
- C++继承中构造函数和析构函数的调用顺序
- C++类的继承中构造函数和析构函数调用顺序例子
- 继承中构造函数和析构函数的调用顺序
- C++继承关系中同名函数调用顺序
- java继承中构造函数的调用
- python中xrange和range的异同
- WINCE开发中,EBOOT模式下,TFTP方式无法下载NK镜像的问题解决方案
- WPF布局控件的选用策略
- oracle建库前的规划
- 两年的工作生涯
- C++继承关系中构造函数的调用顺序
- Undefined symbol Image$$ZI$$Limit
- 回调函数
- Atheros AR9344中断处理流程
- NOIP2005 青蛙过河(状态压缩DP)
- 明晰C++内存分配的五种方法的区别
- 自治事务
- Servlet3.0新特性剖析
- Servlet3.0引入的新特性续