您好,我不时在我的类层次结构中强制执行虚拟成员函数的适当定义。如果我错误地定义了从接口继承的虚函数,那么bug很快就会浮出水面,因为我通常无法实例化派生类。但是,如果从基类(非抽象)继承,而后者继承自接口,则错误变得更加微妙:即。在错误定义中(例如VIsVisible()vs VisVisible()或参数类型包括const的小变化)然后当我认为我在其中时,我最终定义并调用层次结构外的函数。理想情况下,当我在派生类中定义函数时,我希望编译器通过引入某种关键字来标记它,如果它与基类中的现有虚函数不一致......其他人如何管理这个问题? 感谢您的帮助/想法!
答案 0 :(得分:2)
您想使用override关键字:
class Base
{
virtual void MyFunction() { /*Blah*/ }
};
class Child : Base
{
virtual void MyFunction() override { /* DoSomething*/ }
};
如果更改Base::MyFunction
的定义,现在会出现编译错误。