0
我一直無法找到與我的問題有關的答案。就我看到的情況而言,這有點「奇怪」。錯誤:輸入'class'不是'class'的直接基礎
所以我有一個類Child2
繼承自Child1
,繼而從Parent
繼承。 Parent
沒有構造函數。
這裏是我如何繼承:
Child1.h:
class Child1 : virtual public Parent
這是我想從Child2
的構造函數中調用該函數:
void Child1::foo(unsigned int i)
{
// ...
}
Child2
Child2::Child2() : Child1()
{
foo(10);
}
Child2
中沒有foo()
的功能,所以如果我理解正確,不應該有任何含糊之處。
不過,我會遇到這樣的錯誤:
Child2.cpp: In constructor ‘Child2::Child2()’: Child2.cpp:12:28: error: type ‘Child1’ is not a direct base of ‘Child2’ Child2::Child2() : Child1()
Child1
的構造是工作,所以我離開了出來。在這種情況下,我不確定它是否重要。
在這種情況下,您可能忽略了很多重要的內容。你需要提供[mcve]。畢竟,如果你不知道問題出在哪裏,你怎麼知道你遺漏的東西並不是其他人需要幫助你的東西? – Peter
請分享'foo'函數的聲明。 – MKR