C++子类继承
C++ subclass inheritance
好吧,这可能是一个愚蠢的问题,但我不知道如何解决我的问题。
假设我们有 4 个类
- 类 A 是基类
- 类 B 使用新方法从 A 派生(无覆盖(
- C 类派生自 A
- D类派生自B(也派生自A表示继承(
我的问题是:如何在 D 中使用 B 中定义的方法? 如果 D 从 B 继承,我得到"错误:在不同类型的多个基类中找到成员'xxx'" 如果 D 不是从 B 继承的,我会得到"使用未声明的标识符">
以下是它是如何完成的 - 根据您的描述:
class A {
protected:
void foo();
};
class B : public A {
protected:
void bar();
};
class D : public B {
protected:
void baz() { B::bar(); }
};
请注意,不应直接从A
继承 D,除非在非常特殊和极少数情况下。继承是可传递的。
另外,下次,请发布一个最小、完整和可验证的示例,不要让我们猜测您的确切意思。
在那些从多个继承路径的相同子类中使用相同的方法的情况下,"菱形模式"是"菱形模式",您可以在此处阅读有关它的信息。
相关文章:
- 继承期间显示未知行为的子类
- C++ 继承:将子类传递给需要基类的函数并获取子类行为
- 为什么我的子类不继承父类的字符串?
- 初始化依赖于子类的继承类的常量类成员
- 当子类需要在 c++ 中相互包含时,继承有缺陷
- 无法将数据从父类继承到C++中的子类
- C++子类继承
- C++继承,如何在基类的方法中调用子类的方法?
- 如果不手动完成,子类是否继承父类的析构函数?
- 模板化类继承的子类定义中的错误
- 模板类如何在 GCC 和 Clang 中继承子类
- C 模板继承.子类应用固定类型替换基类中的类型
- 具有菱形继承结构的子类的大小似乎很奇怪
- C++继承子类可修改变量
- 未调用/继承子类中的移动赋值运算符
- 如何从继承子类访问基类中的私有成员(c++)
- 如果某些实例不使用基类的属性,我应该继承子类吗?
- 从其他子类继承子类
- c++继承:子类实例同时使用子和父构造函数
- 继承子类时的默认保护级别是什么