【发布时间】:2013-04-14 12:09:06
【问题描述】:
我正在尝试定义一些运算符。
我是按照这个文档做的:
http://courses.cms.caltech.edu/cs11/material/cpp/donnie/cpp-ops.html
是否存在需要定义两次的运算符?
我认为是索引运算符。我对吗?我将其定义为:
int operator [] (const int power) const{
// here there is some code
}
假设我正确地实现了它,那么应该定义两次的运算符呢?
它支持接下来的事情吗?
a[1] = 3;
cout << a[1]; // I defined the << operator
任何帮助表示赞赏!
【问题讨论】:
-
第二个可以工作,但第一个会失败,因为您没有返回参考。
-
所以我必须定义它: int& operator[] (const int power) const;
-
是的,你应该定义另一个返回
int&的运算符重载。 -
@0x499602D2 好的,谢谢
-
请注意建议您应该定义另一个返回 int& 的运算符的重载 - 返回引用的版本不应该在函数参数列表之后有 const .