配列の添え字を指定するのにつかう演算子もオーバーロードできる。
オーバーロードした例が次の通り。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