我目前正在为我的链表重载==操作符。我有我的头操作员设置类似如下:已重载==函数没有被调用
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语句时,我的重载==操作符函数。当我将调试点放在超载函数上时,它表示不会到达该行。
任何提示或建议,非常感谢。谢谢!
编辑:vlist是一个整数列表。
'begin()'返回什么类型? – tzaman 2012-02-18 04:29:27
@tzaman一个迭代器 – Johnston 2012-02-18 04:30:46
它看起来像你为'sq_list'定义'operator =='。但是你正在执行的比较看起来像是'iterators'。如果是这样,'operator =='不会被调用。如果你执行'vlist == vlist',它会被调用。 – Naveen 2012-02-18 04:31:14