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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
#1

std::abs vs global abs - C++

06.05.2013, 14:40. Просмотров 687. Ответов 1
Метки нет (Все метки)

Откуда растут ноги такого поведения, что std::abs возвращает double, а глобальная ::abs() - int ?
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <cmath>
 
int main()
{
    double v = -1.2;
    std::cout << std::abs( v ) << std::endl;
    std::cout << ::abs( v ) << std::endl;
}
https://ideone.com/Vbzc3q
1.2
1
Неужели из того, что в Си не было перегрузки функций?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 14:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос std::abs vs global abs (C++):

Function abs - C++
Ошибка 1.error C2668: abs: неоднозначный вызов перегруженной функции строка 12 Ошибка 2.error C2668: abs: неоднозначный вызов...

abs(float x) - C++
Я не понимаю почему но у меня функция abs возвращает модуль от int чисел и всегда 0 от double чисел. В чём может быть проблема?Хотя вот в...

Pow and ABS problems - C++
Задали протабулировать функцию вот код, ошибки в pow, abs // 333333.cpp : Defines the entry point for the console application. // ...

abs для типа double - C++
У меня в программе нужно сравнивать разность модулей двух чисел, но abs конвертирует в int. Как это можно обойти при этом чтоб минимально...

Тип выводимых данных. abs() и fabs() - C++
Здравствуйте, столкнулся с такой проблей при выводе через cout данных типа double выводится почемуто только 2 знака после запятой(хотя их...

Ошибка в коде: 'abs' was not declared in this scope - C++
Помогите не могу понять где ошибка? using namespace std; int main() { setlocale(0,&quot;&quot;); int m,n; cout&lt;&lt;&quot;Введите количество...

1
ForEveR
В астрале
Эксперт С++
7978 / 4737 / 321
Регистрация: 24.06.2010
Сообщений: 10,543
Завершенные тесты: 3
06.05.2013, 16:35 #2
Tulosba, Именно так. 26.8
In addition to the double versions of the math functions in <cmath>, C++ adds float and long double
overloaded versions of these functions, with the same semantics.
C++
1
2
float abs(float);
double abs(double);
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 16:35
Привет! Вот еще темы с ответами:

Преобразовать выражение используя функцию abs - C++
как можно заменить это,через модуль? if((i &gt; -1000 &amp;&amp; i &lt;-99)||(i &lt; 1000&amp;&amp; i &gt;99))

Не используя стандартных функций за исключением abs вычислить - C++
Дан одномерный целочисленный массив А размерностью N . Определить количество чисел в наиболее длинной последовательности из подряд идущих...

Функция abs и как обойтись без нее - C++
Нужна помощь. При написании кода столкнулся с некой проблемой, что при использовании функции abs работает все отлично, но мне ее...

Ошибка: error C2668: abs: неоднозначный вызов перегруженной функции - C++
Мне выкидывает ошибку при сборке. 1&gt; QueueTest.cpp 1&gt;c:\documents and settings\администратор\рабочий...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru