这里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和虚拟D'TOR。输出如下:
A
B
C
E
D
F
G
H
~H
~G
~F
~D
~E
~C
~B
~A
Press any key to continue . . .
但是根据引用虚拟基类的构造函数应该先执行。
我究竟是什么错误?
编辑:要清除我的问题,根据我的理解,这种行为与基类是否为虚拟无关。但引用坚持虚拟基类。我清醒还是有什么可疑的?
谢谢。
请提供您使用的代码以获得更准确的答案。 – amit
@amit,这里不需要代码。预期这种行为... – eran