超类中具有相同属性的多重继承
multiple inheritance with same attribute in super class
在多重继承中,在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::
,您可以添加一个成员函数,该函数将返回对成员变量的引用。
相关文章:
- 关于C++中具有多重继承"this"指针的说明
- C++中模板化异常类的多重继承
- 虚拟继承中是否存在多重继承?
- 如何在 c++ 多重继承中调用父非虚函数?
- 多重继承相同的方法名,没有歧义
- C++类型的属性是继承的吗
- 使用enable_if解决多重继承歧义
- 多重继承导致虚假的模糊虚拟函数过载
- 多重继承和访问不明确的元素
- C++ 多重继承:使用基类 A 的实现实现基类 B 的抽象方法
- 多重继承中的派生类的行为类似于聚合
- 为什么我的 Hippomock 期望在使用多重继承时失败
- 带有此指针的模板类多重继承构造函数不起作用?
- 使用多重继承时出现编译错误
- 增强多重继承的序列化
- 多重继承:跳过'virtual'关键字并拒绝菱形层次结构的使用?
- 仅函数的多重继承 - 没有虚拟和 CRTP
- C++多重继承和鸭子类型
- C++两次从文件保存对象读取多重继承
- 超类中具有相同属性的多重继承