I found an example where in the a class definition, there were 2 member functions defined, but with the same name and same number of arguments:
const MyClass& operator [] (int index) const;
MyClass& operator [] (int index);
My question is how will the compiler know which operator definition it needs to use?