Can we override operator?

You can override operators, but they might not do what you want . The reason is that operators (actually overloads in general) are selected from the static type of an object. If you now have a reference-to-base which is bound to a derived instance, it will not call the operator for the derived class.

Read more

Do we need operator overloading?

The purpose of operator overloading is to provide a special meaning of an operator for a user-defined data type . With the help of operator overloading, you can redefine the majority of the C++ operators. You can also use operator overloading to perform different operations using one operator.

Read more