Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
:)
Эксперт С++
4763 / 3257 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
1

std::abs vs global abs

06.05.2013, 14:40. Просмотров 1429. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.05.2013, 14:40
Ответы с готовыми решениями:

abs(float x)
Я не понимаю почему но у меня функция abs возвращает модуль от int чисел и всегда 0 от double...

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

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

Можно ли функцию abs положить в if
Столкнулся с проблемой что у меня в if должны быть числа по модулю я подумал что можно туда...

1
В астрале
Эксперт С++
8023 / 4780 / 654
Регистрация: 24.06.2010
Сообщений: 10,558
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.05.2013, 16:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Функция abs вернула не ожидаемый результат
Всем здравствуйте. Запутался с арифметикой: FormMain-&gt;Label1-&gt;Caption = FormatFloat( &quot;0.00&quot;,...

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


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

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

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