Overloading

You can call overloaded functions as long as there exists an exact match or a match that does not require a conversion involving the construction of an object. For example, if the calc function takes a Fraction object as a parameter, and the Fraction class defines a single-argument constructor that accepts an integer, the following command results in an error:

>? calc( 23 )

Even though a legal conversion exists to convert the integer into the Fraction object that the calc function expects, such a conversion involves the creation of an object and is not supported.