编译器:GCC
在下面的代码中,所有 3 个 Foo() 的签名都是Foo(bool b)
,但是有人更新了代码并忘记了更改DeriveB::Foo
。这通过了编译。我们怎样才能防止这种错误呢?
class Base {
virtual Foo(bool b, int i);
}
class DerivedA : public Base {
Foo(bool b, int i);
}
class DerivedB : public Base {
Foo(bool b);
}