Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
В Си и C++ существует такое понятие, как "единица компиляции" 04.06.19 19:17 Число просмотров: 5035
Автор: Den <Денис Т.> Статус: The Elderman Отредактировано 06.06.19 11:31 Количество правок: 1
|
То, что объявлено внутри единицы компиляции, существует только там, а из других единиц компиляции ты можешь получить доступ к тому, что объявил через включение.
Заголовочные файлы также являются единицами компиляции и если ты объявил как static с инициализацией некий синглетон, то к нему, так или иначе, можно получить доступ. Например, в заголовочном файле ты можешь объявить:
static
TYPE_STRING_ID_ITEM* getStringItem1()
(
static
TYPE_STRING_ID_ITEM *instance = NULL;
if (NULL == instance)
instance = new TYPE_STRING_ID_ITEM( 0x0001, 0, 4, "string_id_item");
return instance;
) ---
Экземпляр как переменной типа TYPE_STRING_ID_ITEM, так и возвращающей ссылку на неё функции, находящихся в заголовочном файле, будет только один для всех .cpp файлов, что будут включать этот заголовочный файл.
|
|
|