Здравствуйте, читаю книгу Герберта Шилдта "Руководство для начинающих".
Есть такой пример :
#include <iostream>
using namespace std;
void f(int x);
void f(short x);
void f(double x);
int main() {
int i = 10;
double d = 10.1;
short s = 99;
float r = 11.5F;
f(i);
f(d);
f(s);
f(r);
return 0;
}
void f(int x) {
cout << "В функции f(int): " << x << "\n";
}
void f(short x) {
cout << "В функции f(short): " << x << "\n";
}
void f(double x) {
cout << "В функции f(double): " << x << "\n";
}
Результаты:
В функции f(int): 10
В функции f(double): 10.1
В функции f(short): 99
В функции f(double): 11.5
В конце главы проводится проверка знаний и есть такой вопрос:
Учитывается ли тип значения, возвращаемого функцией, в решении о выборе нужной версии перегруженной функции?
Ниже на него есть ответ:
Нет, типы значений, возвращаемых функциями, могут различаться, но это различие не влияет на решение о выборе нужной версии.
-------------------
Собственно у меня и появился вопрос, почему не учитывается тип данных для выбора версии перегруженной функции, когда после приведения к типу double из float и происходит выбор функции f(double x)?