我从 std::vector 继承了我的类。现在我想重载 [] 运算符。
当我尝试为我的向量分配一个新值时,例如v[0]=5,
我应该收到消息OK
。
这是我的代码(我知道,这没有任何意义,我只是在玩弄):
#include<vector>
#include<iostream>
class Vec : public std::vector<int> {
public:
int operator[](int);
};
int Vec::operator[](int i) {
(*this)[i] = i;
std::cout << "OK";
return 123;
}
int main() {
Vec v;
v[0]=5;
}
不幸的是,我收到以下错误:
In member function ‘int Vec::operator[](int)’:
error: lvalue required as left operand of assignmen
In function ‘int main()’:
error: lvalue required as left operand of assignment