2013-03-03 54 views
1

錯誤消息我得到了下面的代碼是:C++名單的remove_if編譯錯誤

error C2662: 'DamageNumbers::IsAlive' : cannot convert 'this' pointer from 'const DamageNumbers' to 'DamageNumbers &' 
1>   Conversion loses qualifiers 

bool CheckDamageNumbersAlive(const DamageNumbers& e) 
{ 
    return !e.IsAlive(); 
} 

我想從列表中刪除對象時的IsAlive()返回在該列表中的對象錯誤。

+3

是'IsAlive'聲明爲const? – 2013-03-03 14:52:32

+0

如果CheckDamageNumbersAlive(const DamageNumbers&)不能訪問它所屬的實例的任何數據,爲什麼'CheckDamageNumbersAlive(const DamageNumbers&)'是'DamageNumbers'的成員函數? – us2012 2013-03-03 15:24:50

回答

6

你的方法

bool DamageNumbers::IsAlive() {...} 

應該是const:

bool DamageNumbers::IsAlive() const {...}