Can I override only one method in inheritence?
c++, inheritance, overriding
Solution
You're overriding the name "f" as a method name. So any overload will be overridden as well.
You could use the `using` key word, just to tell the compiler to look at the base class as well:
class B : public A
{
public:
using A::f;
virtual void f(int i)
{
cout << "B's f(int)!" << endl;
}
};
Problem
My `C++` code is as follows: ``` #include<iostream> using namespace std; class A { public: virtual void f(int i) { cout << "A's f(int)!" << endl; } void f(int i, int j) { cout << "A's f(int, int)!" << endl; } }; class B : public A { public: virtual void f(int i) { cout << "B's f(int)!" << endl; } }; int main() { B b; b.f(1,2); return 0; } ``` during compilation I get: ``` g++ -std=c++11 file.cpp file.cpp: In function ‘int main()’: file.cpp:29:9: error: no matching function for call to ‘B::f(int, int)’ file.cpp:29:9: note: candidate is: file.cpp:20:16: note: virtual void B::f(int) file.cpp:20:16: note: candidate expects 1 argument, 2 provided ``` When I tried to use override after B's f(int), I got the same error. Is it possible in C++ to override only 1 method? I've been searching for a code example using `override` that will compile on my machine and haven't found one yet.