|
49 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 98
|
|
Про добавление заголовочных файлов в заголовочных файлах11.02.2017, 13:01. Показов 1725. Ответов 6
Метки нет (Все метки)
В который раз эта вещь засовывает мозги в блендер! Я про то, что не могу однозначно запомнить (основываясь на моих знаниях о директиве include, что он просто подставляет содержимое файла на свое место), достаточно один раз всего указать используемый хидер в самом первом #include "My_lasss_name.h", или надо в каждом .h-файле прописывать, какие файлы он использует. Просто, если в каждом своем .h-файле указывать(по необходимости, конечно) какой нибудь, допустим, iostream, то при подготовке к компиляции в исходном тексте может оказаться дофига похожих кусков кода! миллион раз проверял, что если файл1 использует iostream и файл2, то файл2.h то ругается, то не ругается, что в нем нету iiostream, хотя он использует функции ввода-вывода. вот сейчас я даже убрал все иостримы и веравно, любой файл знает про cout!
Как обЪяснить эту неоднозначность? И как вообще поступать, при создании h-файлов чтоб сэкономить нервы?
0
|
|
| 11.02.2017, 13:01 | |
|
Ответы с готовыми решениями:
6
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|||||||
| 11.02.2017, 13:41 | |||||||
1
|
|||||||
|
331 / 283 / 78
Регистрация: 02.08.2016
Сообщений: 1,008
|
||||||
| 11.02.2017, 13:44 | ||||||
|
Для того, чтобы не дублировался код, в C++ существует специальный костыль:
1
|
||||||
|
49 / 2 / 0
Регистрация: 26.09.2014
Сообщений: 98
|
|
| 11.02.2017, 14:01 [ТС] | |
|
nd2, Т.е как я понял, достаточно одного #pragma once, который сам автоматически в MSV, и можно в каждом своем файле добавлять сколь угодно файлов добавленных ранее в предыдущих файлах? а добавится только самое первое включение?
0
|
|
|
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
|
|
| 11.02.2017, 14:05 | |
|
Да, если речь идёт об одной единице трансляции (грубо говря, об одном файле с включениями, который обрабатывает препроцессор).
1
|
|
|
Одессит
|
|
| 11.02.2017, 14:07 | |
|
Maks53, в общем да. Но не обязательно добалять прям все хедеры. Например есть hed1.h, hed2.h и в main.cpp они используются. Если в hed2.h уже есть включения hed1.h то в main не обязательно добавлять оба, можно обойтись одним hed2.h
1
|
|
|
187 / 54 / 19
Регистрация: 23.12.2016
Сообщений: 167
|
|
| 11.02.2017, 21:01 | |
|
Прекомпилированные заголовки включить. И все инклюды библиотек один раз включать в stdafx.h, а он автоматически включается во все вновь создаваемые классы(правда это от настроек зависит) - это если используете Visual Studio. Очень удобно.
0
|
|
| 11.02.2017, 21:01 | |
|
Помогаю со студенческими работами здесь
7
Определение переменных в заголовочных файлах Расположение определения функций в заголовочных файлах Статические свойства структур в заголовочных файлах Странные объявления функций в заголовочных файлах Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Модель заражения группы наркоманов
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,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|