如何編寫具有多繼承的複製構造函數?多繼承,複製構造函數和基類的初始化?
B1
和B2
繼承D
繼承鏈中沒有鑽石。我需要寫一個拷貝構造函數中D
使得它調用的B1
和B2
拷貝構造函數我想避免在這裏寫clone()
如何編寫具有多繼承的複製構造函數?多繼承,複製構造函數和基類的初始化?
B1
和B2
繼承D
繼承鏈中沒有鑽石。我需要寫一個拷貝構造函數中D
使得它調用的B1
和B2
拷貝構造函數我想避免在這裏寫clone()
有什麼問題的經典方法:
D(const D& other) : B1(other), B2(other)
{
}
?
謝謝,我認爲這是行不通的。其實我被困在別的地方。並認爲這是問題 –
@DiproSen - 只要沒有基地是虛擬的,這工作正常。但是,虛擬基礎是從構造函數初始化爲最大派生類型的。相同的語法,但你必須把它放到每個可能被實例化的派生類型中。 –
你爲什麼要寫*這樣的複製構造函數? – curiousguy