オーバーライドされた基本クラスのメソッドを再定義する必要がある理由がわかりません。
ここで、派生クラスの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();
}