Operator Overloading in C++ Programming - Concepts & Challenges