| function-overloading/overloading-3.cc - 'Float to double' conversion prefered over 'float to int' and 'float to long int'. | Lecture 3 - slide 9 : 27 Program 4 |
/* One best match using promotion. Two others at a lower level using standard conversions. */
#include <iostream>
#include <string>
using namespace std;
void f(int i){ // Match: standard conversion
cout << "f(int)" << endl;
}
void f(long int i){ // Match: standard conversion
cout << "f(long int)" << endl;
}
void f(double d){ // Match: promotion
cout << "f(double)" << endl;
}
int main(){
float c = 5.5;
f(c); // A single best match: f(double)
// The float to double promotion is in another category than
// float -> int and float -> long int.
}