我有三门课; A、B 和 C:
class A
{
public:
A() {}
protected:
int x = 0;
int y = 0;
};
class B
{
public:
B() {}
protected:
int x = 1;
int y = 1;
};
class C : public A, B
{
public :
C() {}
};
我希望 C 的 x 成员是来自 A 的成员,而 C 的 y 成员是来自 B 的成员。我该怎么做?自从我写了 class C : public A, B
,现在 C.x 和 C.y 都为 0。当我有多重继承并且我想从一个父级继承一些成员并从另一个父级继承一些成员时,我通常会遇到这个问题。是否有类似于成员函数的选项,可以使用关键字 using
选择将使用哪个功能?
最佳答案
now both
C.x
andC.y
are0
实际上,C::x
和 C::y
都是不明确的,无法编译。您可以使用 using
显式选择并公开基类中的成员:
class C : public A, B
{
public :
C() {}
using A::x;
using B::y;
};
关于c++ - 继承自具有相同成员的两个 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69015863/