diff --git a/ex2.2/overloading.cpp b/ex2.2/overloading.cpp index 0937450..a259d86 100644 --- a/ex2.2/overloading.cpp +++ b/ex2.2/overloading.cpp @@ -3,12 +3,14 @@ * * generalisation of type is possible * => not writing an int implementation means always use the double - * => => even when to ints are supplied, they are generalised to doubles + * => => even when two ints are supplied, they are generalised to doubles */ #include -//int min( int a, int b ); +int min( int a, int b ); +double min( double a, int b ); +double min( int a, double b ); double min( double a, double b ); int min( int a[], int size); @@ -27,15 +29,30 @@ int main() { std::cout << "min( 3.12345, 4 ) = " << min(3.12345, 4) << std::endl; + std::cout << "min( 4, 3.12345 ) = " << min(4, 3.12345) << std::endl; return 0; } -//int min( int a, int b ) { -// if ( a < b ) { -// return a; -// } -// return b; -//} +int min( int a, int b ) { + if ( a < b ) { + return a; + } + return b; +} + +double min( double a, int b ) { + if ( a < b ) { + return a; + } + return b; +} + +double min( int a, double b ) { + if ( a < b ) { + return a; + } + return b; +} double min( double a, double b ) { if ( a < b ) { @@ -53,3 +70,5 @@ int min( int a[], int size ) { return m; } + +// Fix interchangeabiliy of doubles and ints