我有以下C++重載==操作符
bool DistinctWord::operator==(const DistinctWord W) const
{
return strWord == W.strWord;
}
bool DistinctWord::operator==(const DistinctWord& W) const
{
return strWord == W.strWord;
}
我在我的程序做這個一類
DistinctWord* wordOne = new DistinctWord("Test");
DistinctWord* wordTwo = new DistinctWord("Test");
if(*wordOne == *wordTwo)
cout << "true";
else
cout << "false";
我得到這個錯誤
錯誤C2678:二進制「 ==':找不到操作符,它需要類型'DistinctWord'的左側操作數(或者沒有可接受的轉換) 可能是'內置C++操作符==(DistinctWord *,DistinctWord *
)'
我可能只是不理解正確的重載方式。
對不起,這個簡單的問題。 TIA
什麼是Word的繼承樹? – strager 2009-10-03 18:27:01
'strWord'是什麼類型?此外,它是否會爲您提供錯誤的特定行? – Twisol 2009-10-03 18:37:21
@Jeremiah:看看我最新的(頂部)編輯。它有你需要的解決方案。 – 2009-10-03 19:32:47