C++ supports operator overloading; that is, letting a method of a class be disguised to look like an operator. The priority and associativity of the operators are unaffected as well as their number of operands. As an example, let us look at a class handling rational numbers. A rational number is a number that can be expressed as a quotient between two integers, for instance 1/2 or 3/4. The integers are called numerator and denominator, respectively.
class Rational { public: Rational(int iNumerator = 0, int iDenominator = 1); Rational(const Rational& rational); Rational operator=(const Rational& rational); bool operator==(const Rational &number) const; bool operator!=(const Rational &number) const; bool operator< (const Rational &number) const; bool operator<=(const Rational &number) const; bool operator> (const Rational &number) const; bool operator>=(const Rational &number)...