【发布时间】:2013-11-12 07:25:20
【问题描述】:
我有以下类,我正在尝试使用 H 类的对象访问基成员,我收到 H::a is ambiguous 警告。
class E {
public:
E() : a(11) { }
int a;
};
class F : public E {
public:
F() : b(22) { }
int b;
};
class G : public E {
public:
G() : c(33) { }
int c;
};
class H: public F, public G {
public:
H() : d(44) { }
int d;
};
我尝试将数据成员设为静态,但它不允许我在基本构造函数中对其进行初始化。有什么办法可以解决这两个问题?
【问题讨论】:
-
这是 C++ 吗?如果是,您应该添加 c++ 标签。
-
是的,谢谢。我一直忘记这一点。
-
它是模棱两可的。你有两个
a,一个来自 E 的 F 派生,一个来自 E 的 G 派生。要么通过全分辨率选择一个,要么使用虚拟继承。