2
我不太瞭解多繼承和虛繼承。 PLZ幫助我。這裏是我的小測試:
關於多繼承和虛繼承
class Test1
{};
class Test21 : public Test1
{};
class Test22 : public Test1
{};
class Test3 : public Test21, public Test22
{};
int main()
{
Test1 * t1 = new Test3();
delete t1;
system("pause>NUL");
return 0;
}
我得到了一個錯誤:Error 1 error C2594: 'initializing' : ambiguous conversions from 'Test3 *' to 'Test1 *'
。
爲什麼?
然後我試圖像這樣:
class Test1
{};
class Test21 : virtual public Test1
{};
class Test22 : virtual public Test1
{};
class Test3 : public Test21, public Test22
{};
int main()
{
Test1 * t1 = new Test3();
delete t1;
system("pause>NUL");
return 0;
}
現在,我得到另一個錯誤:Debug Assertion Failed!
能有人給我解釋一下關於多重繼承和虛擬繼承?