Overloading The Subscript Operator
postfix-expression [ expression ]
The corresponding operator function is operator(). This can be user-defined for a class X (and any derived classes). The expression X[y], where X is an object of class X, is interpreted as x.operator(y).
The operator() can only be overloaded as a nonstatic member function.