超类中具有相同属性的多重继承

时间:2011-12-26 20:03:29

标签: c++ multiple-inheritance

在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

1 个答案:

答案 0 :(得分:2)

你当然可以#define一切。但这不是一个好的高度。此外,AA将在您的代码中的任何位置定义,而不仅仅在class C的范围内定义。

您可以添加:

using A::var;

默认情况下varA::var

除此之外,如果您不想在任何地方添加A::,您可以添加一个成员函数,该函数会返回您对成员变量的引用。