我不明白为什么我需要重新定义覆盖的基类方法。
在这里,如果我在派生类中注释 foo() 方法,它不会编译。
感谢您的解释。
class Base {
public:
void foo() {
}
};
class Derived: public Base {
public:
#define compile_ok
#ifdef compile_ok
// if this method is commented, it does not compile
void foo() {
Base::foo();
}
#endif
void foo(int i) {
}
void test() {
foo();
foo(1);
}
};
void testOverride() {
Derived d;
d.test();
}