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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 90, средняя оценка - 4.72
ZubSam
12 / 12 / 1
Регистрация: 24.03.2012
Сообщений: 238
15.06.2012, 21:27     Зачем нужны header-файлы #1
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5791 / 3166 / 359
Регистрация: 29.11.2010
Сообщений: 8,469
15.06.2012, 21:39     Зачем нужны header-файлы #2
В них определены константы, функции и классы, с которыми вы потом работаете.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
15.06.2012, 21:47     Зачем нужны header-файлы #3
Заголовочные файлы.
Байт
 Аватар для Байт
14484 / 9198 / 1326
Регистрация: 24.12.2010
Сообщений: 16,851
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
Ворчун
Эксперт С++
 Аватар для MrGluck
5791 / 3166 / 359
Регистрация: 29.11.2010
Сообщений: 8,469
15.06.2012, 22:30     Зачем нужны header-файлы #6
Цитата Сообщение от Байт Посмотреть сообщение
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
Ну не с удовольствием, перед этим поворчит немного.
Байт
 Аватар для Байт
14484 / 9198 / 1326
Регистрация: 24.12.2010
Сообщений: 16,851
15.06.2012, 22:55     Зачем нужны header-файлы #7
Цитата Сообщение от ZubSam Посмотреть сообщение
но ведь такая запись идет только для языка С
C является по идее строгим подмножеством C++. => все что идет на C должно (опять же по идее) прекрасно идти и на C++. Хотя разработчики трансляторов часто эту идею игнорируют...
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну не с удовольствием, перед этим поворчит немного.
Это как настроить. Мои не ворчат.
Avazart
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,778
Записей в блоге: 17
16.06.2012, 03:05     Зачем нужны header-файлы #8
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Реализация идеи отделения интерфейса от реализации. Т.е для удобства чтения кода.
Подобно книги: в книге есть содержание(хедер) и собственно текст,главы,страницы,строки...соответствующие этому содержанию...

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

Если я ошибаюсь то поправьте меня....
taras atavin
Ушёл с форума.
 Аватар для 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
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,778
Записей в блоге: 17
16.06.2012, 18:58     Зачем нужны header-файлы #11
аходится прототип функции sqrt, я прав?
Если ты имеешь ввиду math.h, то да... - но это уже разговор о библиотеках
taras atavin
Ушёл с форума.
 Аватар для 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
Эксперт С++Автор FAQ
 Аватар для Evg
16946 / 5351 / 329
Регистрация: 30.03.2009
Сообщений: 14,389
Записей в блоге: 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-файлы
Ответ Создать тему
Опции темы

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