這裏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