讓例子是:基類的拷貝構造函數(C++)
class Base {
Base (const Base & copyFrom) { globalRegister (* this); }
}
class Derived {
Derived (const Derived & copyFrom) : Base (copyFrom) {}
}
我讀過的建議,包括初始化列表上的基地的拷貝構造函數的派生爲了複製Base的屬性(如示例中所示)。然而,我有基地的副本構造函數將自身(* this)傳遞給其他對象(用於註冊該對象)。如果實際上必須在Derived的複製構造函數的初始化列表中使用(隱式或顯式地)Base構造函數,並且僅在Derived的複製構造函數的主體中調用Base的複製構造函數時纔會出現這種情況,可以通過Base的拷貝構造函數來連接?否則 - (*這是)一個有效的對象?
你沒有從`Base`的初始化列表中傳遞`* this`,對吧? – 2010-11-24 13:42:23
@John Dibling:不,它在Base的拷貝構造函數的主體中。 – 2010-11-24 15:37:13