Пространство имен C ++ и статические переменные - PullRequest
6 голосов
/ 18 декабря 2011

У меня есть требование, чтобы (const) переменная была доступна во всем cpp, который состоит из нескольких классов. Я решил использовать пространство имен для решения проблемы, но не уверен насчет следующего:

  • Нужно ли определять эту переменную как статическую?
  • Правда ли, что я могу избежать статической переменной, только если я использую безымянное пространство имен?

1 Ответ

7 голосов
/ 18 декабря 2011
  1. Вам не нужно для определения переменной как статической или в анонимном пространстве имен.Однако, если вы не используете этот объект за пределами файла, в котором он определен, рекомендуется уменьшить загрязнение пространства имен и ускорить ссылки (за счет уменьшения количества символов, которое необходимо учитывать компоновщику).
  2. Если вы объявите переменную в анонимном пространстве имен, она будет фактически статической.Нет необходимости делать его статичным (хотя вы можете, если хотите).Преимущество анонимных пространств имен заключается в том, что вы также можете определять типы (классы, структуры, перечисления, определения типов), а также статические переменные и функции.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...