Какой правильный "C ++ способ" сделать глобальные переменные? - PullRequest
12 голосов
/ 21 апреля 2009

У меня есть основной класс приложения, который содержит регистратор, а также некоторые общие настройки приложения и т. Д.

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

Я видел несколько вариантов, таких как объявление основного класса extern везде, но это не очень объектно-ориентировано. Каков «стандартный» C ++ способ сделать элементы основного класса доступными для всех (или большинства) других классов?

Ответы [ 11 ]

0 голосов
/ 21 апреля 2009

Я думаю Сервисный локатор подойдет. Что вам придется либо передавать в конструкторы, либо иметь глобально доступную статическую функцию-член в каком-то известном месте. Первый вариант гораздо предпочтительнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...