2012-08-25 39 views
-1

我构建了我的项目。它没有错误,除了它说它在列表类中!默认的列表类不是我的。 误差列表类中的奇怪错误

错误1个错误C2678:二进制“==”:没有操作员发现这需要类型的左边的操作数“moveStringTree”(或没有可接受的转化率)

+3

狂野的问题......你有一个运算符'==',它需要'moveStringTree'作为参数吗? –

+4

请张贴代码也导致错误。 – Mahesh

+0

奇怪的部分是只有那个错误。它并不表示我的代码导致这个错误的任何部分。当我点击错误它打开列表类 – Masoud

回答

2

std::list::remove依赖于==运算符正确地将传递给列表中的对象的对象关联起来。在你的moveStringTree类中定义这个:

bool operator==(const moveStringTree& other) const { 
    return x == other.x; 
} 

其中x是你想要比较的值。

如果你想删除只有它是相同的实例的对象,比较指针。

return this == &other;