从我正在扩展的嵌套 class 覆盖方法

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;
};

我想在 class A 中覆盖 'method' 在 class D 中。这可能吗? 我总是收到消息:

错误:无法在 'A'

中定义成员函数 'method'

A好像没有继承D,也许classA : public C::D会如你所愿。 C 不继承 D,它在自身内部定义了 class,因此基础 classes 无法访问此派生实体。

编辑:尽管这是一种危险的继承模式

不,不可能,因为 D 只是一个内部 class,A 不是从它派生的。

这与 D 是在 C 之外定义的完全相同,您不能覆盖在某种程度上不属于基础 class 的函数(在这种情况下, 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 {} }