ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

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

配列の添え字を指定するのにつかう演算子もオーバーロードできる。
オーバーロードした例が次の通り。operator
()関数の戻り値を参照とすることによって代入文の左側にも使えるようにしている。

#include <iostream>
using namespace std;

const int SIZE=10;

class Test {
    int mArray[SIZE];
public:
    Test() { for(int i=0; i<SIZE; i++) mArray[i] = i; }

    int &operator[](int i) { return mArray[i]; }
};

int main()
{
    Test test;

    cout << test[3] << endl;

    test[3] = 123;

    cout << test[3] << endl;
}

実行結果

3
123