Одиночная инициализация в многократно включенном заголовке? [дубликат] ⇐ C++
Одиночная инициализация в многократно включенном заголовке? [дубликат]
Я пытаюсь смоделировать обычную физическую систему. У меня есть файл заголовка с параметрами, необходимыми для всей программы. В нем специфика системы считывается из текстового файла:
params.h (фиктивный пример)
#include "system_source.h" пространство имен номинал { const System s = read_system_from_file(file_location); ... } (Фактическая программа содержит защиту заголовков)
Программа дает ожидаемые от нее результаты. Однако каждый раз, когда файл импортирует params.h, создается еще один идентичный экземпляр System. Чтение и инициализация Системы потенциально затратно, в зависимости от ее сложности.
Как создать один экземпляр System и получить к нему доступ из нескольких других частей кода?
Я пытался добавить ключевое слово static, но s находится в пространстве имен, а не в классе, поэтому, конечно, это не работает. Должен ли я превратить пространство имен par в класс с открытыми статическими членами?
Я пытаюсь смоделировать обычную физическую систему. У меня есть файл заголовка с параметрами, необходимыми для всей программы. В нем специфика системы считывается из текстового файла:
params.h (фиктивный пример)
#include "system_source.h" пространство имен номинал { const System s = read_system_from_file(file_location); ... } (Фактическая программа содержит защиту заголовков)
Программа дает ожидаемые от нее результаты. Однако каждый раз, когда файл импортирует params.h, создается еще один идентичный экземпляр System. Чтение и инициализация Системы потенциально затратно, в зависимости от ее сложности.
Как создать один экземпляр System и получить к нему доступ из нескольких других частей кода?
Я пытался добавить ключевое слово static, но s находится в пространстве имен, а не в классе, поэтому, конечно, это не работает. Должен ли я превратить пространство имен par в класс с открытыми статическими членами?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение