Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.99/98: Рейтинг темы: голосов - 98, средняя оценка - 4.99
14 / 14 / 1
Регистрация: 24.03.2012
Сообщений: 238

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

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

Студворк — интернет-сервис помощи студентам
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.06.2012, 21:27
Ответы с готовыми решениями:

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить?
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Зачем нужно добавлять файлы в файлы исходного кода
Зачем нужно добавлять файлы в файлы исходного кода (кроме main.cpp)? И как вызвать из main.cpp другой файл?

Зачем нужны указатели?
Интересует вопрос, зачем нужны указатели? Например почему лучше нужно объявлять переменные как указатели, почему как обычно нельзя? ...

12
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
15.06.2012, 21:39
В них определены константы, функции и классы, с которыми вы потом работаете.
0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
15.06.2012, 21:47
Заголовочные файлы.
0
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
15.06.2012, 21:57
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Цитата Сообщение от MrGluck Посмотреть сообщение
В них определены константы, функции и классы, с которыми вы потом работаете.
В простейших случаях можно обойтись и без них
C
1
2
3
4
main()
{
 printf("Hello, Chuvaki!\n");
}
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
1
14 / 14 / 1
Регистрация: 24.03.2012
Сообщений: 238
15.06.2012, 21:58  [ТС]
Цитата Сообщение от Байт Посмотреть сообщение
В простейших случаях можно обойтись и без них
Код C
1
2
3
4
5
6
main()
{
*printf("Hello, Chuvaki!\n");
}
но ведь такая запись идет только для языка С
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
15.06.2012, 22:30
Цитата Сообщение от Байт Посмотреть сообщение
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
Ну не с удовольствием, перед этим поворчит немного.
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
15.06.2012, 22:55
Цитата Сообщение от ZubSam Посмотреть сообщение
но ведь такая запись идет только для языка С
C является по идее строгим подмножеством C++. => все что идет на C должно (опять же по идее) прекрасно идти и на C++. Хотя разработчики трансляторов часто эту идею игнорируют...
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну не с удовольствием, перед этим поворчит немного.
Это как настроить. Мои не ворчат.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.06.2012, 03:05
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Реализация идеи отделения интерфейса от реализации. Т.е для удобства чтения кода.
Подобно книги: в книге есть содержание(хедер) и собственно текст,главы,страницы,строки...соответств ующие этому содержанию...

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

Если я ошибаюсь то поправьте меня....
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
16.06.2012, 18:48
ZubSam, ну вот представь: подключаешь ты стороннюю dll, в ней функции. Ты что, сам будешь перебивать прототип функции? Её определение ведь заведомо не предшествует вызову.

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
C является по идее строгим подмножеством C++
нет. На сях поддерживается синтаксис, запрещённый на плюсах. Например, void main.
0
14 / 14 / 1
Регистрация: 24.03.2012
Сообщений: 238
16.06.2012, 18:53  [ТС]
если я правильно понял, то в header файлах содержатся прототипы функций, например в cmath находится прототип функции sqrt, я прав?
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
16.06.2012, 18:58
аходится прототип функции sqrt, я прав?
Если ты имеешь ввиду math.h, то да... - но это уже разговор о библиотеках
1
 Аватар для taras atavin
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
16.06.2012, 18:58
Не всегда и не только. В головах валяется всё, что надо многократно повторять в других файлах. Реализации функций нет смысла дублировать именно в самих файлах, каждый obj просто умеет их экспортировать, после чего они могут исполняться даже при вызове извне. Но то, что необходимо повторять именно в каждом cpp, а не импортировать в obj из другого такого же, пишется в головах.
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
17.06.2012, 11:00
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Как работает директива include вкратце:
Для чего нужен define?
подробно:
https://www.cyberforum.ru/blogs/18334/blog100.html далее раздел 2

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

https://www.cyberforum.ru/cpp-... post889459
https://www.cyberforum.ru/cpp-... post889587

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

Цитата Сообщение от Байт Посмотреть сообщение
Хотя разработчики трансляторов часто эту идею игнорируют...
Разработчики опираются на документы под названием (грубо говоря) "Стандарт Си" и "Стандарт Си++". И твой взгляд на этот вопрос их мало интересует
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.06.2012, 11:00
Помогаю со студенческими работами здесь

Зачем нужны макросы?
Зачем нужны макросы?

Зачем нужны перечисления в С++?
int main(братья) Снова зову коллективный разум! Дошел в книжке до перечислений и не пойму зачем они вообще нужны, когда есть массивы и...

Зачем нужны классы?
После Си решил попробовать Си++, после нескольких глав Дейтла понял что весь смысл плюсов в классах. Но мне совершенно не понятно зачем они...

Зачем нужны указатели
Не могу понять синтаксис указателей. Понял, что это работа с адресами, что оператор & это адрес. А вот * как я понял, это объявление...

Зачем нужны итераторы?
Практическое использование мне понятно - с их помощью обходят контейнеры и т.д и т.п.Но почему не реализовать нужные методы,перегрузить...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru