我正在扩展第三部分库提供的课程.该类,我们称之为Foo,有一个reset()方法,可以调用它来重新启动Foo的行为. reset()方法也在类内部使用.
class Foo { public: void reset () { /* ... */ } void something () { reset(); } };
到目前为止,我需要重载reset()方法以重置我的其他功能:
class Bar : public Foo { public: void reset() { /* ...something... */ Foo::reset(); } };
不幸的是,由于Foo :: reset()方法不是虚拟的,通过调用Bar :: something()我得到了调用Foo :: reset()方法而不是Bar :: reset().
有没有办法(不同于重载Foo :: something())使其向后虚拟?
解决方法
您不能扩展不打算扩展的类.