Virtual method causes compilation error in Derived class
问题 Consider the next code : #include <iostream> using namespace std; class A { public: virtual int f() {cout <<"A:: f()\n"; return 1;} virtual void f(int) {cout <<"A:: f(int)\n";} virtual void g() {cout <<"A::g()\n";} }; class B3 : public A { public: void f() {cout <<"B3::f ()\n";} }; int main() { return 0; } It produces the following error : ..\main.cpp:17: error: conflicting return type specified for 'virtual void B3::f()' ..\main.cpp:9: error: overriding 'virtual int A::f()' but why ? in the