If I have a pointer to an object that has an overloaded subscript operator ([]) why can\'t I do this:
[]
MyClass *a = new MyClass(); a[1];
Good news. You can also do...
a->operator[](1);
To add on to the preferred answer, think of operator overloading as overloading functions.
When overloading member function of a class, you remember that the pointer is not of that class type.