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

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

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

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

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

Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2012, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Зачем нужны header-файлы (C++):

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

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

Зачем нужны классы? - C++
Изучаю СИ++ после изучения СИ. Не пойму какой смысл в классах. То что они делают можно реализовать с помощью функций, структур и обычных...

Зачем нужны операторы << и >> - C++
В книжке Дейтлов есть код http://pic.ipicture.ru/uploads/091222/thumbs/q1TZw4n1JQ.jpg Вопрос в том, что там где написано, что числа...

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

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

12
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
15.06.2012, 21:39 #2
В них определены константы, функции и классы, с которыми вы потом работаете.
0
Toshkarik
1147 / 864 / 51
Регистрация: 03.08.2011
Сообщений: 2,404
Завершенные тесты: 1
15.06.2012, 21:47 #3
Заголовочные файлы.
0
Байт
Нарушитель
Эксперт C
16687 / 10950 / 1684
Регистрация: 24.12.2010
Сообщений: 21,348
15.06.2012, 21:57 #4
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Цитата Сообщение от MrGluck Посмотреть сообщение
В них определены константы, функции и классы, с которыми вы потом работаете.
В простейших случаях можно обойтись и без них
C
1
2
3
4
main()
{
 printf("Hello, Chuvaki!\n");
}
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
1
ZubSam
13 / 13 / 1
Регистрация: 24.03.2012
Сообщений: 238
15.06.2012, 21:58  [ТС] #5
Цитата Сообщение от Байт Посмотреть сообщение
В простейших случаях можно обойтись и без них
Код C
1
2
3
4
5
6
main()
{
*printf("Hello, Chuvaki!\n");
}
но ведь такая запись идет только для языка С
0
MrGluck
Модератор
Эксперт CЭксперт С++
7498 / 4614 / 694
Регистрация: 29.11.2010
Сообщений: 12,633
15.06.2012, 22:30 #6
Цитата Сообщение от Байт Посмотреть сообщение
И большинство трансляторов эту штуку с удовольствием схавает и даже выдаст ожидаемый результат
Ну не с удовольствием, перед этим поворчит немного.
1
Байт
Нарушитель
Эксперт C
16687 / 10950 / 1684
Регистрация: 24.12.2010
Сообщений: 21,348
15.06.2012, 22:55 #7
Цитата Сообщение от ZubSam Посмотреть сообщение
но ведь такая запись идет только для языка С
C является по идее строгим подмножеством C++. => все что идет на C должно (опять же по идее) прекрасно идти и на C++. Хотя разработчики трансляторов часто эту идею игнорируют...
Цитата Сообщение от MrGluck Посмотреть сообщение
Ну не с удовольствием, перед этим поворчит немного.
Это как настроить. Мои не ворчат.
0
Avazart
Эксперт С++
7237 / 5433 / 304
Регистрация: 10.12.2010
Сообщений: 24,154
Записей в блоге: 17
16.06.2012, 03:05 #8
Цитата Сообщение от ZubSam Посмотреть сообщение
Здравствуйте хотелось бы узнать ,в чем заключается смысл этих самых header файлов ?
Реализация идеи отделения интерфейса от реализации. Т.е для удобства чтения кода.
Подобно книги: в книге есть содержание(хедер) и собственно текст,главы,страницы,строки...соответствующие этому содержанию...

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

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

Добавлено через 1 минуту
Цитата Сообщение от Байт Посмотреть сообщение
C является по идее строгим подмножеством C++
нет. На сях поддерживается синтаксис, запрещённый на плюсах. Например, void main.
0
ZubSam
13 / 13 / 1
Регистрация: 24.03.2012
Сообщений: 238
16.06.2012, 18:53  [ТС] #10
если я правильно понял, то в header файлах содержатся прототипы функций, например в cmath находится прототип функции sqrt, я прав?
0
Avazart
Эксперт С++
7237 / 5433 / 304
Регистрация: 10.12.2010
Сообщений: 24,154
Записей в блоге: 17
16.06.2012, 18:58 #11
аходится прототип функции sqrt, я прав?
Если ты имеешь ввиду math.h, то да... - но это уже разговор о библиотеках
1
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
16.06.2012, 18:58 #12
Не всегда и не только. В головах валяется всё, что надо многократно повторять в других файлах. Реализации функций нет смысла дублировать именно в самих файлах, каждый obj просто умеет их экспортировать, после чего они могут исполняться даже при вызове извне. Но то, что необходимо повторять именно в каждом cpp, а не импортировать в obj из другого такого же, пишется в головах.
1
Evg
Эксперт CАвтор FAQ
18377 / 6424 / 441
Регистрация: 30.03.2009
Сообщений: 17,838
Записей в блоге: 28
17.06.2012, 11:00 #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

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

Цитата Сообщение от Байт Посмотреть сообщение
Хотя разработчики трансляторов часто эту идею игнорируют...
Разработчики опираются на документы под названием (грубо говоря) "Стандарт Си" и "Стандарт Си++". И твой взгляд на этот вопрос их мало интересует
0
17.06.2012, 11:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2012, 11:00
Привет! Вот еще темы с ответами:

Зачем нужны исключения? - C++
Добрый вечер, прочитал статью об исключениях, не очень понимаю, почему бы не заменить их просто оператором if? Вот код с исключением: ...

Зачем нужны деревья? - C++
Изучил тему деревья (осуществлял втавки, удаление, обходы и т.д.). Теперь хочу разобраться, зачем они вообще нужны? В каких случаях надо...

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

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


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

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

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