【发布时间】:2011-05-26 14:57:55
【问题描述】:
我想写一个与 std::set 兼容的类,所以我像这样重载了“小于”运算符。它有效。
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;}
这原来是一个编译时错误:无法将“this”指针从“const Segment::SVertex”转换为“Segment::SVertex &”
(注意我的VS2008不是英文的,我翻译了错误信息,所以上面那行不一定准确)
我只知道 '&' 表示通过引用传递,而 'const' 禁止任何更改。我不完全了解幕后发生的事情。
【问题讨论】:
标签: c++ operator-overloading constants