我想写一个与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