覆盖我正在扩展的嵌套类的方法
Override method from nested class that I'm extending
class A : public B {}
class B : public C {}
class C
{
public :
class D : public I<T1>
{
virtual void method() const;
};
class E : public I<T2>
{
virtual void method() const;
};
class F : public I<T2>
{
virtual void method() const;
};
public :
D d;
};
我希望在A类中覆盖D中的"方法"。是否有可能?我总是收到消息:
错误:无法在'a''
不可能,因为 D
只是一个内部类, A
不会从中派生。
这与D
在C
之外定义的完全相同,您不能覆盖不在基类方面的某种方式的函数(在这种情况下,A
并未以任何方式从D
派生)。<<<<<<<<<<<<<<<<
//How would A override a method in D? It can't, A has nothing to do with D
class A : public B {};
class B : public C {};
class C {}
class D { virtual void method() const {} }
a似乎并未从d上继承,也许是A类:公共C :: D将实现您想要的东西。C不继承D,它在本身内定义了类,因此基类无法访问此派生实体。
编辑:fwiw虽然这是继承的危险模式
相关文章:
- 单独定义模板化嵌套类方法的正确语法
- 在 c++ 中实现嵌套循环的更短方法吗?
- 如何在该接收类之外声明嵌套类的方法
- 从列表/向量制作嵌套 for 循环的最佳方法是什么?
- 如何重写继承的嵌套类中存在的虚拟方法
- CRTP:为什么获得嵌套类型和派生类的嵌套方法有区别
- 在 C 中并行化嵌套循环的几种方法之间的差异,C++使用 OpenMP
- 嵌套类的替代方法
- 许多变量,没有嵌套循环的最佳方法
- 在嵌套名称空间范围中使用名称空间的正确方法
- C++:将 Args && ... _args传递到嵌套列表的正确方法?
- 如何使用new()在嵌套类中调用方法
- 执行三个嵌套for循环的最快方法是什么
- 模板化方法中使用的嵌套类的未解析外部符号
- 覆盖我正在扩展的嵌套类的方法
- 定义类(和嵌套类)成员函数的更好/更整洁/更可读的方法
- 简单C++是嵌套布尔方法
- 静态嵌套bool会帮助我禁用对某些类型的调用吗?或者有更干净的方法吗
- 有没有一种方法可以将宏名称作为参数传递给嵌套宏,而在最外层宏展开时不展开它们
- C++嵌套方法try-catch(实践)