В настоящее время я работаю над перегрузкой оператора == для моего связанного списка. У меня есть оператор в моем заголовке настроить так:Перегрузка == функция не получает вызов
class sqrlst
{
public:
std::vector<int> vlist;
bool operator == (iterator const & rhs)
{
return this->iter == rhs.iter;
};
Затем я создал метод в моем файле заголовка с помощью следующего кода
void test()
{
bool flag;
if (vlist.begin()==vlist.begin())
{
flag=true;
}
};
};
Однако, когда этот метод называется он не идет для моей перегруженной функции-оператора ==, когда она попадает в статут if. Когда я помещаю точку отладки в функцию перегрузки, она говорит, что линия не будет достигнута.
Любые советы или предложения приветствуются. Благодаря!
EDIT: vlist - это список ints.
Какой тип 'begin()' return? – tzaman
@tzaman итератор – Johnston
похоже, что вы определили 'operator ==' для 'sq_list'. Но сравнение, которое вы выполняете, похоже на «итераторы». Если это так, 'operator ==' не будет вызываться. Он будет вызываться, если вы выполните 'vlist == vlist'. – Naveen