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

multiple inheritance with same attribute in super class

本文关键字:属性 多重继承 超类      更新时间:2023-10-16

在多重继承中,在suber类中具有相同的属性,如下所示

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
当然,

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

您可以添加:

using A::var;

因此,默认情况下var A::var

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