From bf04d5a4b269803d90c54076bf0f0be08592a13b Mon Sep 17 00:00:00 2001 From: Eric Teunis de Boone Date: Wed, 1 Jul 2020 14:11:04 +0200 Subject: [PATCH] Ex2.2 feedback: explicit definition for `int,double` and `double,int` signatures for `min` function --- ex2.2/overloading.cpp | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) 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