bool operator == (const MyString& left, const MyString& right)
{
if(left.value == right.value)
return true;
else return false;
}
bool operator != (const MyString& left, const MyString& right)
{
if(left == right)
return false;
else
return true;
}
bool operator < (const MyString& left, const MyString& right)
{
if(strcmp(left.value, right.value) == -1)
return true;
else
return false;
}
bool operator > (const MyString& left, const MyString& right)
{
if(strcmp(left.value, right.value) == 1)
return true;
else
return false;
}
bool operator <= (const MyString& left, const MyString& right)
{
if(strcmp(left.value, right.value) == -1 || strcmp(left.value, right.value) == 0)
return true;
else
return false;
}
bool operator >= (const MyString& left, const MyString& right)
{
if(strcmp(left.value, right.value) == 1 || strcmp(left.value, right.value) == 0)
return true;
else
return false;
}
これらは私のMyStringクラスの比較演算子ですが、私の教授が私に与えたテストプログラムには失敗しています。何が問題ですか?MyStringクラスの比較演算子をオーバーロードしています
*質問*は何ですか? – Puppy
'strcmp'関数はゼロ、_negative_、または_positive_を返します。それは '-1'や' 1'ではありません。 –
良い答えが、私は '演算子=='あなたが欲しいものをやっているとは思わない。あなたは値ではなくポインタを比較しています。これを試してください: 'return!strcmp(left.value、right.value);' – parkovski