2012-08-25 42 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;