[]演算子は、配列へのアクセスで使用される演算子です。ポインタ値に、[]内で指定された整数値を加算し、その指す先にアクセスするときにも使える便利な演算子です。
この演算子はちょっと特殊で他の演算子と違い、リファレンスを返却します。自分自身(に含まれる)のどこか一部を返却する、一部に代入すると考えればよいです。
class MyClass {
public:
MyClass& MyClass::operator[](size_t i)
{
return a[i];
}
private:
int* a;
size_t size;
};
なお、この演算子をオーバーロードするときは、const修飾されたパターンもオーバ―ロードしないと使い物にならないらしいです。そうしないとconst付きのオブジェクトを扱えないため。
コメント