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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.72
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
#1

Зачем нужны header-файлы - C++

15.06.2012, 21:27. Просмотров 12243. Ответов 12
Метки нет (Все метки)

Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт CЭксперт С++
6475 / 3673 / 460
Регистрация: 29.11.2010
Сообщений: 9,679
15.06.2012, 21:39     Зачем нужны header-файлы #2
В них определены константы, функции и классы, с которыми вы потом работаете.
Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,384
Завершенные тесты: 1
15.06.2012, 21:47     Зачем нужны header-файлы #3
Заголовочные файлы.
Байт
Эксперт C
15297 / 9699 / 1441
Регистрация: 24.12.2010
Сообщений: 18,055
15.06.2012, 21:57     Зачем нужны header-файлы #4
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Цитата Сообщение от MrGluck Посмотреть сообщение
В них определены константы, функции и классы, с которыми вы потом работаете.
В простейших случаях можно обойтись и без них
C
1
2
3
4
main()
{
 printf("Hello, Chuvaki!\n");
}
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
15.06.2012, 21:58  [ТС]     Зачем нужны header-файлы #5
Цитата Сообщение от Байт Посмотреть сообщение
В простейших случаях можно обойтись и без них
Код C
1
2
3
4
5
6
main()
{
*printf("Hello, Chuvaki!\n");
}
но ведь такая запись идет только для языка С
MrGluck
Ворчун
Эксперт CЭксперт С++
6475 / 3673 / 460
Регистрация: 29.11.2010
Сообщений: 9,679
15.06.2012, 22:30     Зачем нужны header-файлы #6
Цитата Сообщение от Байт Посмотреть сообщение
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
Ну не с удовольствием, перед этим поворчит немного.
Байт
Эксперт C
15297 / 9699 / 1441
Регистрация: 24.12.2010
Сообщений: 18,055
15.06.2012, 22:55     Зачем нужны header-файлы #7
Цитата Сообщение от ZubSam Посмотреть сообщение
но ведь такая запись идет только для языка С
C является по идее строгим подмножеством C++. => все что идет на C должно (опять же по идее) прекрасно идти и на C++. Хотя разработчики трансляторов часто эту идею игнорируют...
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну не с удовольствием, перед этим поворчит немного.
Это как настроить. Мои не ворчат.
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,955
Записей в блоге: 17
16.06.2012, 03:05     Зачем нужны header-файлы #8
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Реализация идеи отделения интерфейса от реализации. Т.е для удобства чтения кода.
Подобно книги: в книге есть содержание(хедер) и собственно текст,главы,страницы,строки...соответствующие этому содержанию...

Перед компиляцией текст хедора попадает "внутрь" cpp файла и после компиляции это становится одним obj-файлом.

Если я ошибаюсь то поправьте меня....
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.06.2012, 18:48     Зачем нужны header-файлы #9
ZubSam, ну вот представь: подключаешь ты стороннюю dll, в ней функции. Ты что, сам будешь перебивать прототип функции? Её определение ведь заведомо не предшествует вызову.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
C является по идее строгим подмножеством C++
нет. На сях поддерживается синтаксис, запрещённый на плюсах. Например, void main.
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
16.06.2012, 18:53  [ТС]     Зачем нужны header-файлы #10
если я правильно понял, то в header файлах содержатся прототипы функций, например в cmath находится прототип функции sqrt, я прав?
Avazart
7045 / 5222 / 259
Регистрация: 10.12.2010
Сообщений: 22,955
Записей в блоге: 17
16.06.2012, 18:58     Зачем нужны header-файлы #11
аходится прототип функции sqrt, я прав?
Если ты имеешь ввиду math.h, то да... - но это уже разговор о библиотеках
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
16.06.2012, 18:58     Зачем нужны header-файлы #12
Не всегда и не только. В головах валяется всё, что надо многократно повторять в других файлах. Реализации функций нет смысла дублировать именно в самих файлах, каждый obj просто умеет их экспортировать, после чего они могут исполняться даже при вызове извне. Но то, что необходимо повторять именно в каждом cpp, а не импортировать в obj из другого такого же, пишется в головах.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2012, 11:00     Зачем нужны header-файлы
Еще ссылки по теме:

C++ Зачем нужно добавлять файлы в файлы исходного кода
Зачем нужны классы и структуры? C++
Зачем нужны исключения? C++
C++ Зачем нужны классы?
Зачем нужны указатели C++

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

Или воспользуйтесь поиском по форуму:
Evg
Эксперт CАвтор FAQ
17311 / 5559 / 347
Регистрация: 30.03.2009
Сообщений: 15,127
Записей в блоге: 26
17.06.2012, 11:00     Зачем нужны header-файлы #13
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Как работает директива include вкратце:
Для чего нужен define?
подробно:
http://www.cyberforum.ru/blogs/18334/blog100.html далее раздел 2

Добавлено через 3 минуты
Цитата Сообщение от Байт Посмотреть сообщение
C является по идее строгим подмножеством C++. => все что идет на C должно (опять же по идее) прекрасно идти и на C++.
Вот тебе примеры, когда один и тот же код работает по разному на Си и Си++:

http://www.cyberforum.ru/cpp-experts...tml#post889459
http://www.cyberforum.ru/cpp-experts...tml#post889587

Не говоря уж о твоём "простейшем" примере. На Си разрешён вызов функции без прототипа, на Си++ - нет. Думать, что программа, написанная на Си, с полпинка заработает на Си++ - одно из стандартных заблуждений

Цитата Сообщение от Байт Посмотреть сообщение
Хотя разработчики трансляторов часто эту идею игнорируют...
Разработчики опираются на документы под названием (грубо говоря) "Стандарт Си" и "Стандарт Си++". И твой взгляд на этот вопрос их мало интересует
Yandex
Объявления
17.06.2012, 11:00     Зачем нужны header-файлы
Ответ Создать тему
Опции темы

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