Max*_*xym 4 c++ standards standards-compliance c++11
下面的代码令人惊讶地编译在VS 2012中.
方法C :: f()覆盖两个基类中的方法.
这是标准行为吗?我查看了C++ 11标准,并没有发现任何明确提到这种情况.
class A { virtual void f() = 0; };
class B { virtual void f() = 0; };
class C : public A, public B {
virtual void f() override { }
};
Run Code Online (Sandbox Code Playgroud)
是.标准说,在C++ 11 10.3/2中
如果
vf在一个类Base和一个类中声明一个虚拟成员函数Derived,直接或间接地从Base派生,一个vf与声明的名称[等]相同的成员函数Base::vf,则覆盖 它Base::vf.
多个基类没有特殊情况,因此在派生类中声明的函数将覆盖所有基类中的合适函数.
| 归档时间: |
|
| 查看次数: |
102 次 |
| 最近记录: |