我想寫一個與std :: set兼容的類,所以我重載了像這樣的「少於」運算符。有用。'const Obj'和'Obj&'有什麼關係?
bool Segment::SVertex::operator<(const SVertex &rhs) const
{
return id < rhs.id;
}
但是,由於我寫Java比C++多,'rhs.id'對我來說看起來很不舒服。所以我將其更改爲「rhs.getId()」,其中的getId()僅僅是一個正常的getter函數:
long SVertex::getId(){return id;}
這原來是一個編譯時錯誤:無法從轉換「這個」指針「常量段:: SVertex」到‘段:: SVertex &’
(請注意,我的VS2008是不是英語,我翻譯的錯誤信息,所以上面的行不一定確切)
我只知道'&'表示通過引用傳遞,'const'禁止任何更改。我不完全瞭解幕後發生的事情。
謝謝!這真的不是正常的哈哈!我應該改變我認爲從編寫數千行Java代碼形成的方式。我的錯。 – fwonce 2011-05-26 15:08:01