我有以下類,我試圖訪問使用H類對象的基礎成員,並且我得到一個H :: a是不明確的警告。是不是一個非靜態數據成員或基類
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++標籤。 – kfsone
是的,這是謝謝你。我一直忘記這一點。 – GelatinFox
它*不明確。你有兩個來自E的F推導的'a',一個來自E的G推導。或者通過全分辨率選擇一個,或者使用虛擬繼承。 – WhozCraig