在suber类中具有相同属性的多继承c ++中,如此代码
class A{
protected :
int var;
}
class B{
protected :
int var;
}
class C: public A,B{
C(){
A::var=3;
B::var=5;
}
}
我必须编写A :: var或B :: var来确定超类 有没有办法在C类中重新定义属性,如
#define AA = A::var
答案 0 :(得分:2)
你当然可以#define
一切。但这不是一个好的高度。此外,AA
将在您的代码中的任何位置定义,而不仅仅在class C
的范围内定义。
您可以添加:
using A::var;
默认情况下var
为A::var
。
除此之外,如果您不想在任何地方添加A::
,您可以添加一个成员函数,该函数会返回您对成员变量的引用。