Can someone please explain in greater detail what operator overloading is, and how to do it? And if you can overload operators other than << and =. So for instance, if I want to overload the * operator so I could multiply two matrices, how would it be done?