我想通過派生類初始化一個基類成員項目。我遇到的問題是我傳遞的值取決於「x」。 所以這裏是我在做什麼:?如何在派生構造函數的大括號中初始化基構造函數? C++
Derived:: Derived()
{
uint8 number = getNumber();
P p;
if (number == 3)
{
p = P1;
}
else
{
p = P2;
}
Base(p);
}
我得到的錯誤「沒有默認構造函數存在類‘基地’有什麼我做錯了
你定義在基類的構造函數基礎:: Base的(P P) – HJuls2
@ HJuls2 - 已定義,但沒有'Base()',因爲t他錯誤地指出。 '基地(p);'不是電話。它定義了一個類型爲'Base'的名爲'p'的對象,試圖默認構造它。 – StoryTeller
Base(p)是構造函數調用。 Base :: Base(P p); –