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

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

Войти
Регистрация
Восстановить пароль
 
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
#1

Стандартная билиотека - C++

09.09.2012, 18:00. Просмотров 555. Ответов 7
Метки нет (Все метки)

Зачем нужная функция fabs, если abs делает всё то, что делает fabs и, даже больше?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.09.2012, 18:00
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Стандартная билиотека (C++):

стандартная библиотека - C++
Здравствуйте!!! Хотел бы узнать сколько стандартных библиотек есть в с++ ?? И хотел бы увидеть их список и комментарии к ним(т.е для чего...

Есть ли стандартная очередь в с++? - C++
Всем Привет!!! Вопрос такой есть ли стандартная очередь в с++(ну я так понимаю она 100% быть должна) чет ни где не могу найти. Не...

Стандартная библиотека шаблонов - C++
Реализовать класс ввода и вывода с помощью STL

не запускается стандартная функция - C++
Здравсвтуйте. Помогите разобраться, почему компилятор не распознаёт функцию oct() в коде #include <stdio.h> #include <iostream.h> ...

Стандартная библиотека C++ и STL - C++
Вот нашел такие строки в книге Эккеля "Философия С++" В частности например класс vector автор относит к библиотеки С++, причем...

Стандартная библиотека Си msvcrt.dll - C++
Никак не могу понять принцип работы этих функций, например, в чем будет различие в использование printf от WriteConsole? WriteConsole из...

7
grizlik78
Эксперт С++
1982 / 1475 / 126
Регистрация: 29.05.2011
Сообщений: 3,048
09.09.2012, 18:08 #2
fabs() достался C++ по-наследству от C. В Си функция abs() принимает только целочисленные аргументы, результат, соответственно, тоже целочисленный.
В C++ функцию abs() лучше использовать исключительно в виде std::abs(), независимо от того, используется ли using namespace std, или нет.
0
OhMyGodSoLong
~ Эврика! ~
1245 / 994 / 42
Регистрация: 24.07.2012
Сообщений: 2,002
09.09.2012, 18:11 #3
Затем, что в Си, откуда ноги у fabs() растут, нет перегрузки функций.
0
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
09.09.2012, 18:13  [ТС] #4
Я тоже так сначала подумал и сделал следующее:
В vs2010 заменил расширение файла .cpp на .с. После чего подключил только <math.h>
И всё равно при напечатание 1 скобочки при вызове функции выдаются различные функции abs для разных типов.
0
Toshkarik
1148 / 865 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
09.09.2012, 18:15 #5
Расширение файла никак на это не влияет.
0
grizlik78
Эксперт С++
1982 / 1475 / 126
Регистрация: 29.05.2011
Сообщений: 3,048
09.09.2012, 18:15 #6
Цитата Сообщение от bgm313 Посмотреть сообщение
И всё равно при напечатание 1 скобочки при вызове функции выдаются различные функции abs для разных типов.
И работает тоже по-разному? Если да, то это всё-равно C++, если нет, то IDE не различает языки.
0
bgm313
12 / 12 / 2
Регистрация: 27.07.2012
Сообщений: 208
09.09.2012, 18:25  [ТС] #7
Цитата Сообщение от Toshkarik Посмотреть сообщение
Расширение файла никак на это не влияет
Почему, тогда если я меняю, расширение файла на .c и ввожу код (см.ниже), то компилятор показывает более 100 ошибок, связанных с отсутствием ;

C++
1
2
3
4
5
6
#include <iostream>
using namespace std;
 
void main(void){
    cout << 1;
}
Добавлено через 1 минуту
Цитата Сообщение от grizlik78 Посмотреть сообщение
И работает тоже по-разному? Если да, то это всё-равно C++, если нет, то IDE не различает языки.
С другой стороны в C нет перегрузки функций и поэтому довольно странно, что открывается список функций для разл. типов

Вопрос: может ли ide частично использовать язык c, а частично c++ при расширение файла .c?
0
grizlik78
Эксперт С++
1982 / 1475 / 126
Регистрация: 29.05.2011
Сообщений: 3,048
09.09.2012, 18:32 #8
Вот, можешь сравнить результат для разных языков.
Си:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
int main(void)
{
   double v1, v2;
   v1 = abs(1) / 3;
   printf("%f\n", v1);
   v2 = abs(1.0) / 3;
   printf("%f\n", v2);
   return 0;
}
C++:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <cstdio>
#include <cstdlib>
#include <cmath>
 
int main(void)
{
   double v1, v2;
   v1 = std::abs(1) / 3;
   printf("%f\n", v1);
   v2 = std::abs(1.0) / 3;
   printf("%f\n", v2);
   return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от bgm313 Посмотреть сообщение
Вопрос: может ли ide частично использовать язык c, а частично c++ при расширение файла .c?
Почему нет? В проекте допускается смешивать исходники на си и си++. Хотя IDE не должна вводить в заблуждение, а вводит, похоже.
1
09.09.2012, 18:32
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.09.2012, 18:32
Привет! Вот еще темы с ответами:

Стандартная библиотека шаблонов (STL) - C++
Пожалуйста,помогите решить.. Написать программу, которая использует класс string для анализа строки, содержащей математическое...

Стандартная библиотека С++11 для GCC - C++
Вопрос имеется ли реализация стандартной библиотеки стандарта С++11 для GCC компилятора (.a либы)? Если да то где можно скачать? У меня...

Стандартная подпрограмма(однопараметрическая,двухпараметрическая) - C++
Здравствуйте!) Очень нужно создать два варианта стандартных подпрограмм.С заданием одного и двух,во втором случае,параметров.Буду очень...

Stl стандартная библиотека шаблонов c++ map - C++
Доброго всем времени суток :) Помогите пожалуйста дописать прогу. Нужно добавить сортировку по фамилии (что бы выводились в алфавитном...


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

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

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