Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 21

Правильное включение заголовочных файлов

03.03.2015, 17:08. Показов 2847. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет, хочу задать такой вопрос. У меня есть классы в файлах Menu.h, Options.h, About.h, Game.h, Pause.h. Каждый из этих классов должен агрегационно включать класс из файла Button.h. А класс с Run.h файла должен включать агрегационно классы с Menu.h, Options.h, About.h, Game.h, Pause.h. Как мне правильно заинклюдить Button.h?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2015, 17:08
Ответы с готовыми решениями:

Правильное подключение заголовочных файлов
Всем привет!!!Начал разбираться с ООП , и ... тут же возникла проблема. Пишу программу следующую есть два класса футболист и команда и...

Правильное подключение заголовочных файлов
Как подключать заголовочные файлы я знаю, но вот у меня есть вопрос, ответ на который я нигде не видел, не видел даже рекомендаций как...

Включение заголовочных файлов дважды
Как справится с тем, что некоторые файлы .h надо включить несколько раз, т.е. помимо main.cpp, еще и в других заголовочных файлах?...

5
 Аватар для jvbel
20 / 20 / 18
Регистрация: 24.02.2015
Сообщений: 49
03.03.2015, 17:12
можно, например, воспользоваться директивой #pragma once
1
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 21
03.03.2015, 17:15  [ТС]
а как ее правильно использовать?
0
 Аватар для jvbel
20 / 20 / 18
Регистрация: 24.02.2015
Сообщений: 49
03.03.2015, 17:26
Лучший ответ Сообщение было отмечено floor114 как решение

Решение

с нее вообще желательно начинать каждый файл заголовка (.h)
после этого заголовки можно включать почти не задумываясь
повторного включения не будет
нужно только контролировать, чтобы не было перекрестного включения, типа файл a.h включает b.h, а b.h включает a.h

есть другая техника, можно использовать конструкцию вида

#ifndef _A_H_
#define _A_H_

текст файла

#endif

здесь _A_H_ - просто некоторый уникальный идентификатор, связанный с этим файлом заголовка

это тоже предохраняет от повторных включений
1
 Аватар для SmittWesson
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
03.03.2015, 17:36
Цитата Сообщение от floor114 Посмотреть сообщение
Как мне правильно заинклюдить Button.h?
Без разницы. Препроцессор, сначала обработает все инклюды и включит в список. При втором проходе, всё ненужное, будет отброшено. Современные компили, - четырёхпроходные. Досконально в этом не разбирался, но (ИМХО) на последнем проходе делается какая-то оптимизация (хз).
0
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 21
03.03.2015, 17:52  [ТС]
Благодарю, помогло
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2015, 17:52
Помогаю со студенческими работами здесь

Взаимное включение заголовочных файлов
Нужно передать объект по ссылке Вот как сейчас: //LoadImages.h class LoadImages { ttfInit(); }; //LoadImages.cpp ...

Про добавление заголовочных файлов в заголовочных файлах
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу однозначно запомнить (основываясь на моих знаниях о директиве...

Раздельная компиляция (нюансы использования заголовочных файлов и файлов реализации)
Почему во многих учебниках функции-члены класса внутри класса только объявляют, но определяют вне самого класса (не, ну как бы в классе, но...

Подключение заголовочных файлов и файлов реализации
Здравствуйте,при создании класса в visual studio руками не компилится проект,при создании через add class все работает,для примера написал...

Подключение заголовочных файлов
Здравствуйте! Подскажите, можно ли сделать так, чтобы при создании нового консольного проекта, наиболее часто используемые файлы (например,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru