C++ []演算子のオーバーロード

[]演算子は、配列へのアクセスで使用される演算子です。ポインタ値に、[]内で指定された整数値を加算し、その指す先にアクセスするときにも使える便利な演算子です。
この演算子はちょっと特殊で他の演算子と違い、リファレンスを返却します。自分自身(に含まれる)のどこか一部を返却する、一部に代入すると考えればよいです。

class MyClass {
public:
 MyClass& MyClass::operator[](size_t i)
 {
  return a[i];
 }
private:
 int* a;
 size_t size;
};

なお、この演算子をオーバーロードするときは、const修飾されたパターンもオーバ―ロードしないと使い物にならないらしいです。そうしないとconst付きのオブジェクトを扱えないため。

コメント

コメントする

CAPTCHA