如何重写继承的嵌套类中存在的虚拟方法
How to override virtual method present in inherited Nested Classes
如何覆盖继承嵌套类中的虚拟方法?
代码片段:
class A
{
public:
virtual void foo();
};
class B
{
public:
class C: public A
{};
};
class D: public B
{
//How to override foo()`enter code here` method of class A here in class D?
}
在大多数情况下,嵌套类的行为就像它们在嵌套的类之外定义的一样。
唯一的区别与名称查找、可访问性和模板专用化有关。
特别是,嵌套类与其封闭类之间没有继承关系。
在您的示例中
class B
{
public:
class C: public A
{};
};
是(除了如何找到C
的名字(等于:
class B
{
};
class C: public A
{
};
C
和B
之间没有继承关系,因此D
和A
之间也没有继承关系。D
和A
不属于同一类层次结构。
因此,让D
覆盖A
的成员函数是没有意义的。
相关文章:
- 嵌套在类中时无法设置成员数据
- 无法访问嵌套类.类的使用无效
- 我正在使用嵌套的while循环来解析具有多行的文本文件,但由于某种原因,它只通过第一行,我不知道为什么
- 如何在C++中初始化嵌套类中的2个memeber
- 如何声明特征矩阵,然后通过嵌套循环初始化它
- 在C++中搜索嵌套多映射值
- 在C++中将矢量转换为嵌套地图
- C++嵌套if语句,基本货币交换
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 嵌套的匿名命名空间
- 如何重写继承的嵌套类中存在的虚拟方法
- 当存在嵌套循环时,我应该如何决定应该嵌套哪个循环?
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- 嵌套类中对运算符[]的调用存在歧义
- 在C++中,是否存在将结束父函数的嵌套函数的返回
- 如何让代码存在于两个或多个非嵌套命名空间的范围内
- 基于递归的 N 嵌套循环存在逻辑问题
- 嵌套 std::map 的输出存在问题
- 如果模板存在嵌套类型(未访问),且该方法无法编译,则模板可以实例化吗?
- 是否存在用于嵌套枚举类的接口机制