У меня есть класс со следующим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 *
)
Я, вероятно, просто не понимаю правильный способ перегрузки.
Извините за простой вопрос. ТИА
Что такое дерево наследования 'Word'? – strager
Какой тип 'strWord'? Кроме того, дает ли она вам определенную строку для ошибки? – Twisol
@Jeremiah: см. Мою последнюю (вверху) править. У этого есть необходимое решение. –