【发布时间】:2011-10-28 01:12:15
【问题描述】:
这里http://www.parashift.com/c++-faq-lite/multiple-inheritance.html 部分 [25.14] 说
首先要执行的构造函数是层次结构中任意位置的虚拟基类。
我尝试使用以下程序对其进行验证:
A (pure virtual)
|
B
|
C
(virtual)/ \ (virtual)
E D
\ /
F
|
G (pure virtual)
|
H
每个班级都有一个 c'tor 和 virtual d'tor。输出如下:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
但根据引用,虚拟基类构造函数应该首先执行。
我理解错了什么?
编辑:为了澄清我的问题,根据我的理解,这种行为与基类是否为虚拟无关。但引用坚持虚拟基类。我是清楚还是有什么可疑之处?
【问题讨论】:
-
请提供您使用的代码以获得更准确的答案。
-
@amit,这里不需要代码。这种行为是预期的......
标签: c++ inheritance constructor destructor