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!
能有人给我解释一下关于多重继承和虚拟继承?