在不给出新定义的情况下使虚函数最终

时间:2017-03-13 18:45:06

标签: c++ c++11 virtual final

在我的类层次结构中,有许多可以被覆盖的虚函数。例如,我的Window类有许多功能,不需要更改,但也不应该在将来被覆盖。所以我想在一些Window的函数中添加final关键字,但我不需要重新定义它们中的任何一个,因为它们已经像我想要的那样工作。

我目前只是在最终重新定义中调用基类函数,但我想知道是否有更好的方法来执行此操作,甚至不需要这样做。

示例代码:

class Control {
    virtual void foo();
};
class Window : public Control {
    void foo() final; // I don't want to have to define this because it does the same thing.
};
class AnotherControl : public Control {
    void foo() override; // I do want to change what the function does with this control.
};

0 个答案:

没有答案