Форум программистов, компьютерный форум CyberForum.ru

Ругается на неоднозначный вызов перегруженной функции - C++

Восстановить пароль Регистрация
 
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 199
06.04.2014, 15:05     Ругается на неоднозначный вызов перегруженной функции #1
Делаю все по примерам не могу понять в чем ошибка. Уверен что ошибка элементарная. Ругается на неоднозначный вызов перегруженной функции. Причем на все функции(
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <cmath>
using namespace std;
#define Pi 3.14
int main()
{
int T; double P; int r,t,Y,R,A;
cout<<"T = ";
cin>>T;
cout<<"r = ";
cin>>r;
cout<<"Y = ";
cin>>Y;
cout<<"R = ";
cin>>R;
cout<<"A = ";
cin>>A;
cout<<"t = ";
cin>>t;
if (T>2)
{
P=(78*Pi+A-cos(T+r))/(pow(r,2)-log(T));
}
else
{
P=(log(R)+Pi-cos(Y)+67)/(sin(R)+pow(t,2));
}
cout<<P;
system("pause");
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.04.2014, 15:32     Ругается на неоднозначный вызов перегруженной функции #2
Цитата Сообщение от ыфырф1992 Посмотреть сообщение
Ругается на неоднозначный вызов перегруженной функции.
Какой компилятор? На какие строки? Сделайте все типы double и не парьтесь
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 199
06.04.2014, 15:36  [ТС]     Ругается на неоднозначный вызов перегруженной функции #3
visual c++ 2010 express,
C++
1
P=(78*Pi+A-cos(T+r))/(pow(r,2)-log(T));
и на эту
C++
1
P=(log(R)+Pi-cos(Y)+67)/(sin(R)+pow(t,2));
1>------ Построение начато: проект: chernowik, Конфигурация: Debug Win32 ------
1> chernowik.cpp
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(22): error C2668: cos: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): может быть "long double cos(long double)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): или "float cos(float)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): или "double cos(double)"
1> при попытке сопоставить список аргументов "(int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(22): error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): может быть "long double pow(long double,int)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): или "float pow(float,int)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): или "double pow(double,int)"
1> при попытке сопоставить список аргументов "(int, int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(22): error C2668: log: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(575): может быть "long double log(long double)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(527): или "float log(float)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(120): или "double log(double)"
1> при попытке сопоставить список аргументов "(int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(26): error C2668: log: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(575): может быть "long double log(long double)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(527): или "float log(float)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(120): или "double log(double)"
1> при попытке сопоставить список аргументов "(int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(26): error C2668: cos: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(559): может быть "long double cos(long double)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(511): или "float cos(float)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(115): или "double cos(double)"
1> при попытке сопоставить список аргументов "(int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(26): error C2668: sin: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(585): может быть "long double sin(long double)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(537): или "float sin(float)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(123): или "double sin(double)"
1> при попытке сопоставить список аргументов "(int)"
1>c:\users\александр\documents\visual studio 2010\projects\прога 1\chernowik\chernowik\chernowik.cpp(26): error C2668: pow: неоднозначный вызов перегруженной функции
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(583): может быть "long double pow(long double,int)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(535): или "float pow(float,int)"
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\math.h(497): или "double pow(double,int)"
1> при попытке сопоставить список аргументов "(int, int)"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Не получиться поставить double задача стоит именно так. Причем в DEV C++ все работало.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.04.2014, 16:20     Ругается на неоднозначный вызов перегруженной функции #4
ыфырф1992, тогда домножьте первый аргумент каждой функции на 1.0 (это переведет тип в double). Или используйте явное приведение static_cast<double>(T+r) и т.д.
ыфырф1992
25 / 25 / 12
Регистрация: 08.04.2012
Сообщений: 199
06.04.2014, 16:22  [ТС]     Ругается на неоднозначный вызов перегруженной функции #5
Tulosba, спасибо но почему работало в DEV C++ не подскажите(просто интересно)?
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
06.04.2014, 16:24     Ругается на неоднозначный вызов перегруженной функции #6
ыфырф1992, вероятно разные версии стандарта языка C++. В C++11 есть варианты упомянутых функций для целого типа.
Yandex
Объявления
06.04.2014, 16:24     Ругается на неоднозначный вызов перегруженной функции
Ответ Создать тему
Опции темы

Текущее время: 18:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru