Программа не определяет тип данных
Создал перегруженную функцию с типами данных char, long, double.Visual Studio не может определить разницу между char и long и подчеркивает их,как исправить это?
#include <iostream>
using namespace std;
char avg(char* x, char* y) {
return (*x * *y) / 2;
}
double avg(double x, double y) {
return (x * y) / 2;
}
long avg(long x, long y) {
return (x * y) / 2;
}
int main()
{
cout << avg(7,6) << endl; // тут лонг
cout << avg(2.0, 10.0) << endl;
cout<<avg(2,3)<<endl;
}
Ответы (1 шт):
Автор решения: EOF
→ Ссылка
В вызовах avg(7, 6) и avg(2, 3) Вы передаете аргументы типа int, которые могут быть преобразованы и в long и в double. Компилятор не может определиться и генерирует ошибку. Передавайте аргументы типа long просто добавив суффикс L:
cout << avg(7L ,6L) << endl;
cout << avg(2.0, 10.0) << endl;
cout << avg(2L, 3L) << endl;
Вы говорите, что не может определить разницу между char и long. У Вас нет ни одной функции, которая принимает аргументы типа char. Есть функция, которая принимает указатели на char, но в коде такая нигде не вызывается.