相关疑难解决方法(0)

强制所有类在多级继承层次结构中实现/覆盖"纯虚拟"方法

在C++中,为什么 virtual法强制要求其强制压倒一切的只有它的直接孩子(创建对象),而不是到孙子女等等?

struct B {
  virtual void foo () = 0;
};
struct D : B {
  virtual void foo () { ... };
};

struct DD : D {
  // ok! ... if 'B::foo' is not overridden; it will use 'D::foo' implicitly
};
Run Code Online (Sandbox Code Playgroud)

离开这个功能我没有看到什么大不了的.
例如,在语言设计的角度来看,只有当它有一些明确的语句时才struct DD允许使用D::foousing D::foo;.否则它必须覆盖foo强制性.

在C++中有这种效果的实用方法吗?

c++ overriding virtual-functions class-hierarchy language-lawyer

3
推荐指数
1
解决办法
1万
查看次数