0

<<作成したクラスで、大文字と小文字に関係なく 2 つの文字列を比較する演算子をオーバーロードしようとしています。ここに私のブール演算子があります

friend bool operator <<(const string& member, const string& player) {
  return toLowerCase(member) == toLowerCase(player);
}

プログラムはコードのこの時点でエラーを返します

current->name << member

current は文字列名を含むノードへのポインタであり、 member はユーザーにプロンプ​​トが表示されたときに参照によって渡される文字列です。私が得るエラーは

invalid operands to binary expression('string'(aka'basic_string<char>') and 'string')
4

2 に答える 2

1

エラーメッセージは、オーバーロードを検出していないことを示唆していますが、strings で組み込みのビットシフト演算子を使用しようとしています (そしてもちろん失敗しています)。あなたが提供した情報を考えると、その理由はわかりません。

とにかく、より良いアイデアは、非メンバー、非演算子compare()関数を使用operator<<することです.文字列を比較するために使用すると、あなたのコードを見ている人を混乱させるだけです. .

于 2013-10-28T08:57:42.970 に答える