C++_虚继承

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/du1055669885/article/details/82982425
class B : class A;
class C : class A;
class D : class B, class C;

此时,new D时候,就会构造出两个A,被称作二义性。

解决办法:

class B : virtual class A;
class C : virtual class A;
class D : class B, class C;

具体体现,程序编译过程中,报错:

error: request for member '*' is ambiguous
error: candidates are: void A::*()
error:                 void A::*()

意思是,请求成员不明确,有两个候选者。

猜你喜欢

转载自blog.csdn.net/du1055669885/article/details/82982425