Если есть заголовочный файл, скажем «test.h» включаяпространство имен в определении и реализации
namespace test
{
enum ids
{
a = 1,
b = 2,
c = 3,
d = 30
};
char *names[50];
};
и исходный файл, «test.cc» в основном только в том числе
test::names[test::a] = "yum yum";
test::names[test::c] = "pum pum";
// ...
Разве не было бы смысла обертывать реализацию внутри пространства имен?
Я бы сказал, что это было бы, поскольку это после реализации файла заголовка, поэтому было бы целесообразно включить реализацию в том же пространстве имен, что и заголовок, без ручной префикса каждой переменной с помощью test::
и префикса при использовании значения извне.
Это мнение новобранец C++, что могли бы сказать более умные люди здесь?
Да, я знаю, что вы могли бы это сделать .. это был просто вопрос: «Правильно ли это делать, или вам лучше префикс вручную» :) – LukeN
@LukeN: Как упоминалось ниже Лима Бинс, это вопрос предпочтения и последовательности. Я предпочитаю, и хотел бы думать, что я последовательно использую первый метод. Я мог бы сделать так, чтобы быть явным (как и в вашем коде), вероятно, является самым надежным, поскольку он явно требует от разработчика писать то, что они означают, а не быть более неявным. Недостатком является то, что он требует большего набора текста и, как таковой, может привести к раннему артриту запястья и пальцев или, возможно, синдрому туннеля в области рубля;) – andand
@ LukeN: Я также предпочитаю обертывание, обратите внимание, что метод 'use' нахмурился (даже в исходные файлы). –