【发布时间】:2014-11-19 16:16:34
【问题描述】:
class myClass {
public:
int y[2];
myClass() {
y[0] = 0;
y[1] = 0;
}
void operator[](int x) {
//
}
};
int main() {
myClass myobj();
//myobj.y[0] = 1;
return 0;
}
上面的类 myClass 有一个公共成员,一个由两个元素组成的整数数组。现在,我需要重载 operator[] 而不是在 main myobj.y[0] = 1; 中编写,以便通过编写 y[0] = 1; 来执行相同的操作,将数组的元素设置为等于某个值,例如此处为 1。我已经为此苦苦挣扎了一个多小时,起初我不知道要声明什么 operator[],也许是无效的?其次,无论如何,我可以将数组的位置传递给参数 x 但我不知道如何传递值,我是否也应该重载 operator = ?
【问题讨论】:
-
你在正确的轨道上。这是一个教程:tutorialspoint.com/cplusplus/…
-
@RSahu +1,比我的回答好;你已经教会了 OP 如何钓鱼。
-
@Bathsheba,SO 只是网络上寻找此类问题答案的众多资源之一。希望人们尽可能多地利用它们。
-
非常好的例子,但与我的问题相符,能够传递位置但不能传递价值 ^^
标签: c++ class operator-overloading