You can also overload them in a number of ways. You can define exponentiation via ^ however this would be a bit strange to another programmer. Similarly you can overload (). For example you could make a call option object with private data member Strike and use the () operator to return the price like this