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

Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Sapfil
Сообщений: n/a
20.09.2011, 15:52     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #1
Привет.

Вступление. Имею небольшой опыт в программировании. Сейчас мне дали разобрать один проект, как пример работы HGE и Box2D.

Суть. Я всегда считал, что каждый блок программы оформляется в виде двух файлов - .cpp-файл и .h-файл. В .h- прототипы, классы, а в .cpp- выполнение, собственно сам код. Посмотрев в .h-файл, можно понять ЧТО делает данный блок, а посмотрев в .cpp-файл, - КАК он это делает.

В .h-файл при помощи #include включаются другие .h-файлы, нужные для работы данного блока. А в .cpp-файл включается только одноименный .h-файл. Ну и в некоторых случаях файлы типа "math.h".

Однако, начав копаться в чужом проекте я обнаружил множество инклудов как в .cpp- так и в .h- файлах каждого программного блока. Причем в .cpp- включены именно сторонние .h-файлы.

Автор того проекта считает такое положение вещей правильным. И даже как-то объясняет свою позицию. Во-первых он говорит что так быстрее компилируется. Во-вторых он как-то разделяет по смыслу то что включается в .h- и то что включается в .cpp-файл. Но я считаю, что это очень неудобно для стороннего наблюдателя - трудно отследить что куда включается и что где используется.

Просьба к опытным программистам. Особенно к тем, кто имеет опыт работы в команде. По вашему мнению кто прав - автор проекта или я. Если есть ссылка на книжку по "правильному, понятному для других коду" - буду очень благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 15:52     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include
Посмотрите здесь:

C++ по строкам.замените в слове сочетание "му" на "а" , а букву "ы" на "ца". очень нужно
C++ Создать класс комплексных чисел и ввести операции: "+", "-", "*", "/".
Чтения структуры из файла (описать структуру с именем "ORDER": "счет плательщика"; "счет получателя"; "сумма, переводится банковской операцией") C++
C++ С++ консольное приложение win32, матерится на первое "pow" после "if", а на "system" говорит что неопределён.
C++ В массиве структур студент с полями "ИМЯ" "ВОЗРАСТ" "УСПЕВАЕМОСТЬ" выполнить сортировку по успеваемости по возрастанию
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
20.09.2011, 16:41     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #2
Цитата Сообщение от Sapfil Посмотреть сообщение
Я всегда считал, что каждый блок программы оформляется в виде двух файлов - .cpp-файл и .h-файл. В .h- прототипы, классы, а в .cpp- выполнение, собственно сам код. Посмотрев в .h-файл, можно понять ЧТО делает данный блок, а посмотрев в .cpp-файл, - КАК он это делает.
- есть ещё библиотеки lib (они заменяют собой тот самый срр, которого как бы не находишь)Простыми словами lib - это уже откомпилиній срр-ник с готовыми функциями на пользование. В хедерах студии стоит #pragma comment(lib,"some.lib").

Цитата Сообщение от Sapfil Посмотреть сообщение
Однако, начав копаться в чужом проекте я обнаружил множество инклудов как в .cpp- так и в .h- файлах каждого программного блока. Причем в .cpp- включены именно сторонние .h-файлы.
- понятное дело когда пишем класс с нуля сначала создаём срр, производим дебаг а вот потом если уж задаться целью можно из откомпилированного срр создать lib который прописать уже в хедере.

Добавлено через 2 минуты
Sapfil, посмотри сколько *.lib файлов содержит каталог студии и поймёшь о чём говорил
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,512
20.09.2011, 16:43     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #3
Так это уже на любителя, у Страуструпа вся 9ая глава этому посвящена, почитайте если интересно.
-=ЮрА=-
Заблокирован
Автор FAQ
20.09.2011, 16:45     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #4
Sapfil, посмотри, там и lib и dll Помогите с подключением dll к проекту
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
20.09.2011, 16:59     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #5
Sapfil, посмотрите организацию проекта http://www.cyberforum.ru/cpp-beginners/thread41218.html.

Добавлено через 2 минуты
гмм... правка не работает почему-то..
пишем свой интерпретатор
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
20.09.2011, 17:29     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #6
Sapfil,
А в .cpp-файл включается только одноименный .h-файл. Ну и в некоторых случаях файлы типа "math.h".
Бред. Какой смысл забивать .h файл инклудами, которые нужны только в cpp?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.09.2011, 18:41     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include
Еще ссылки по теме:

C++ Вставить пробел после каждого символа "." "," "!" или "?", если за этими символами не следует пробел
C++ #include "Sales_item.h" - ошибка "включаемый файл включает самого себя"
Структура «Преподаватель» с полями "ФИО", "стаж", "категория", "нагрузка" C++

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

Или воспользуйтесь поиском по форуму:
nxnx
Формучанин
361 / 292 / 16
Регистрация: 02.11.2010
Сообщений: 1,226
20.09.2011, 18:41     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include #7
По возможности и необходимости, все инклуды нужно пихать в cpp файл.
Хедер-"лицо" модуля(cpp файла), в нём не должно быть лишней информации.
Зачем это нужно, чтобы каждый раз при компиляции очередного исходника, который использует этот хедер, компилятору летел лишний текст из инклудов?
Yandex
Объявления
20.09.2011, 18:41     Вопрос "хорошего тона", "стиля" в программировании - правильное использование #include
Ответ Создать тему
Опции темы

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