There is nothing wrong with operator overloading . In fact, there’s something wrong with not having operator overloading for numeric types. (Take a look at some Java code that uses BigInteger and BigDecimal.) C++ has a tradition of abusing the feature, though.