2016-11-26 13 views
0

私は過去の質問に行きました。鉱山。だから、私はこの方法でエラーになっています。あなたの助けに本当に感謝します。エラー: 'operator =='に一致するものがありません(オペランドの種類は 'Seat'と 'std :: string {aka std :: basic_string <char>}')

エラーがある:

error: no match for 'operator==' (operand types are 'Seat' and 'std::string {aka std::basic_string}')

void SeatsCreateReservation(vector<Seat>& seats) { 
string account_ID; 
unsigned int seatNum = 0; 
Seat seat; 
cout << "Enter username: "; 
cin >> account_ID; 

for (seatNum = 0; seatNum < seats.size(); seatNum++) { 
    if (seats.at(seatNum) == account_ID) { 
    cout << "Seat number too large." << endl; 
    break; 
    } 
    } 
    seat.Reserve(account_ID); 
    seats.at(seatNum) = seat; 
    cout << "Completed." << endl; 
    return; 
} 
+0

一部エラーメッセージが不明ですか? 'seats.at(seatNum)== account_ID'は一方では' Seat'のインスタンスを、もう一方では 'std :: string'のインスタンスを比較しようとしますが、この比較を実行する手段は実装していません。 –

答えて

1

かなり自明と思われる:

no match for ' operator== ' (operand types are ' Seat ' and ' std::string {aka std::basic_string} ')

オペレータ==のいかなる実装はSeat種類の左側と右側を受け付ける存在しませんstd::stringの手の側。あなたはリンゴとオレンジを比較しようとしているので、あなたはどのように行うには、それを指示する必要がありますし、それらを比較し、コンパイラを作りたい場合は、理にかなって

、例えば:の

bool operator==(const Seat& seat, const std::string&string) { 
    ... 
} 
関連する問題