error: reference to 's' is ambiguous

c++多继承中的问题

class A包含属性s;

class B继承A;

class C继承A;

class D继承B,C;

D中重载set_s()方法。

code::blocks 编译出错:error: reference 's' is ambiguous

了解一下虚继承吧。冲突了。分别在B,C继承A的时候使用 class B:public virtual A可以解决

这是典型的菱形继承,也就是说A中包含了一个s,BC因为继承了A,都有s,而从D访问s的时候,就不知道是C的s还是B的s了。
可以把s申明成virtual的。

十分感谢楼上的答案!

可以看看我的主页的一篇文章,已成功解决