Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
EpicLove
46 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 48
#1

C++ ошибка в 10L

20.04.2011, 15:02. Просмотров 2730. Ответов 7
Метки нет (Все метки)

Имеется программа :

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
32
33
34
35
36
37
38
#include <iostream>
using namespace std;
 
//ГЏГҐГ°Г*Г§Г*ãðóçêГ* abs() Г°Г*Г§Г*ûìè ñïîñîáГ*ìè
int abs(int n);
long abs(long n);
double abs(double n);
 
int main()
{
    setlocale (LC_ALL,".1251");
    cout << "ÀáñîëþòГ*Г*Гї âåëè÷èГ*Г* -10: " << abs(-10) << "\n/n";
    cout << "ÀáñîëþòГ*Г*Гї âåëè÷èГ*Г* -10L: " << abs(-10L) << "\n/n";
    cout << "ÀáñîëþòГ*Г*Гї âåëè÷èГ*Г* -10.01: " << abs(-10.01) << "\n/n";
    system("pause");
    return 0;
}
 
//abs äëÿ öåëûõ
int abs(int n)
{
    cout << "Г‚ öåëîì abs()\n";
    return n<0 ? -n: n;
}
 
//abs äëÿ äëèГ*Г*ûõ öåëûõ
long abs(long n)
{
    cout << "Г‚ äëèГ*Г*ûõ öåëîì abs()\n";
    return n<0 ? -n: n;
}
 
//abs äëÿ ГўГҐГ№ГҐГ±ГІГўГҐГ*Г*îé äâîéГ*îé òî÷Г*îñòè
double abs(double n)
{
    cout << "Г‚ ГўГҐГ№ГҐГ±ГІГўГҐГ*Г*ûõ abs() äâîè÷Г*îé òî÷Г*îñòè \n";
    return n<0 ? -n: n;
}
при компиляции возникает ошибка на строку 13
C:\Users\EpicLove\Documents\C++\zada4a_6.cpp In function `int main()':
13 C:\Users\EpicLove\Documents\C++\zada4a_6.cpp call of overloaded `abs(long int)' is ambiguous
long int abs(long int)
double abs(double)
long long int __gnu_cxx::abs(long long int)
long int std::abs(long int)
Если убрать "L" то компилируется отлично.
В чем моя ошибка ? В данный момент как наверно догадались, читаю главу "Перезагрузка функций" (Герберд Шилдт)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2011, 15:02
Ответы с готовыми решениями:

СМА AMICA AWCT 10L(wa14210), нужен дамп
Пришла машинка-проц под замену(mc9s08aw32).Может есть дамп PG5.04.31.301...

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке...

Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи!
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error).
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление...

Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка
В Combobox загружены имена организаций. Нужно выполнить запрос на вывод всех...

7
mansp
18 / 18 / 7
Регистрация: 07.11.2010
Сообщений: 136
20.04.2011, 15:36 #2
очень странно... у меня всё запусаетса и компилит безошибок...
0
EpicLove
46 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 48
20.04.2011, 15:40  [ТС] #3
Использую программу wxDev-C++ 7.3.1.3
0
Evg
Эксперт CАвтор FAQ
19277 / 7134 / 528
Регистрация: 30.03.2009
Сообщений: 19,976
Записей в блоге: 30
20.04.2011, 18:34 #4
Из-за "using namespace std;" подцепляется целое пространство имён, в котором содержатся в том числе и abs'ы.

1 способ. Удаляем строку "using namespace std;" и везде заменяем "cout" на "std::cout"
2 способ. В точке вызова заменяем "abs" на "::abs", чтобы явно указать, что мы используем abs из глобальной области видимости, а не std::abs, который в том числе цепляется из-за "using namespace std;"

Я бы сделал и первое и второе
1
EpicLove
46 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 48
20.04.2011, 18:41  [ТС] #5
Странно все это описывают в книге.
Нету пояснений о std::cout и т.д.
и другом
0
Evg
Эксперт CАвтор FAQ
19277 / 7134 / 528
Регистрация: 30.03.2009
Сообщений: 19,976
Записей в блоге: 30
20.04.2011, 18:42 #6
Цитата Сообщение от EpicLove Посмотреть сообщение
Странно все это описывают в книге.
Нету пояснений о std::cout и т.д.
и другом
Возможно, что книга старая. В "прошлой" редакции Си++ (уж не помню какого года) этого std не было, а в "нынешней" (вроде бы 2003 года) - появилось
0
EpicLove
46 / 2 / 0
Регистрация: 19.04.2011
Сообщений: 48
20.04.2011, 18:57  [ТС] #7
Возможно, что книга старая. В "прошлой" редакции Си++ (уж не помню какого года) этого std не было, а в "нынешней" (вроде бы 2003 года) - появилось
Книга за 2003 год.
Или можете посоветовать книгу получше ?
0
Evg
Эксперт CАвтор FAQ
19277 / 7134 / 528
Регистрация: 30.03.2009
Сообщений: 19,976
Записей в блоге: 30
20.04.2011, 20:19 #8
http://www.cyberforum.ru/cpp/thread152353.html
0
20.04.2011, 20:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2011, 20:19

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать)
1C 8.2 Документооборот КОРП 1.2 Текст ошибки...

Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера'
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect...


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

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

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