私のC++
コードは次のとおりです。
#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;
}
コンパイル中に私は得る:
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
Bのf(int)の後にオーバーライドを使用しようとすると、同じエラーが発生しました。
C ++で1つのメソッドのみをオーバーライドすることは可能ですか?私は自分のマシンでコンパイルされるコード例を探していましたが、override
まだ見つかりませんでした。