クラスを 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