假设我有两个基类B1和B2,以及一类D使得来自两个B1和B2导出如下:
class B1 {
public:
// ...
virtual void foo() final { cout << "Hello, B1\n"; }
};
class B2 {
public:
// ...
virtual void foo() { cout << "Good riddance, B2!\n"; }
};
class D :public B1, public B2 {
// ...
};
Run Code Online (Sandbox Code Playgroud)
在设计类时D,我想覆盖foo()从B2 调用的成员函数; 然而,foo()在B1中标记final并阻止我foo()在B2中覆盖.foo()从B2 覆盖的最佳方法是什么?