0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 21
1

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

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

Author24 — интернет-сервис помощи студентам
Привет, хочу задать такой вопрос. У меня есть классы в файлах 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
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.03.2015, 17:08
Ответы с готовыми решениями:

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

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

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

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

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

Решение

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

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

#ifndef _A_H_
#define _A_H_

текст файла

#endif

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

это тоже предохраняет от повторных включений
1
236 / 196 / 21
Регистрация: 04.06.2014
Сообщений: 1,309
03.03.2015, 17:36 5
Цитата Сообщение от floor114 Посмотреть сообщение
Как мне правильно заинклюдить Button.h?
Без разницы. Препроцессор, сначала обработает все инклюды и включит в список. При втором проходе, всё ненужное, будет отброшено. Современные компили, - четырёхпроходные. Досконально в этом не разбирался, но (ИМХО) на последнем проходе делается какая-то оптимизация (хз).
0
0 / 0 / 0
Регистрация: 11.10.2014
Сообщений: 21
03.03.2015, 17:52  [ТС] 6
Благодарю, помогло
0
03.03.2015, 17:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.03.2015, 17:52
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru