を動作させることはできません。過負荷=演算子は、私は以下のコードでは9行に=演算子をオーバーロードしようとしています、それは
void searchContact(vector<Person> &people){
string searchTerm;
vector<Person>::iterator it;
cout << endl;
cout << "Enter search term: ";
getline(cin, searchTerm);
it = find(people.begin(), people.end(), searchTerm);
if (it != people.end()){
cout << "Element found in: " << *it << '\n';
}else{
cout << "Element not found\n";
}
}
私のアプローチはこれです:私は
int data;
Person& operator=(Person& a) { return a; }
Person& operator=(int a) {
data = a;
return *this;
}
このエラーを取得しています:
class.cpp:129:30: error: ‘Person& operator=(Person&)’ must be a nonstatic member function
Person& operator=(Person& a) { return a; }
^
class.cpp:130:26: error: ‘Person& operator=(int)’ must be a nonstatic member function
Person& operator=(int a) {
何私のアプローチが間違っているか、私は最初からそれがすべて間違っているのでしょうか?
はあなたが*代入*演算子を作成したいあなたは確かにいますか?そして、等価の '=='演算子ではないのですか? –
入手したエラーについては、[最小限の、完全で検証可能な例](http://stackoverflow.com/help/mcve)を作成してください。 –
最後に、あなたのコピー代入演算子が間違っているので([オーバーロードされた演算子の標準実装のこのリファレンス](http://en.cppreference.com/w/cpp/language/operators#Canonical_implementations)を読むことをお勧めします初心者には何もコピーしない)。 –