Объявите и определите внутри пространства имен - Не уверен, что это работает, потому что это правильно или случайно - PullRequest
0 голосов
/ 30 ноября 2018

прямо к точке у меня есть файл .h следующим образом

namespace ns
    {
    namespace n1
        {
        class a
            {funct();}
        class b
            {funct();}
        }
    namespace n2
        {
        class a
            {funct();}
        class b
            {funct();}
        }
    }

обычно я определяю функцию в файле .cpp следующим образом:

int ns::n1::a::funct(){return 1;}
int ns::n1::b::funct(){return 1;}
int ns::n2::a::funct(){return 1;}
int ns::n2::b::funct(){return 1;}

Сегодня язаметил, что это работает так же хорошо, как и файл .cpp

namespace ns
    {
    namespace n1
        {
        a::funct(){return 1;}
        b::funct(){return 1;}
        }
    namespace n2
        {
        a::funct(){return 1;}
        b::funct(){return 1;}
        }
    }

, что очень полезно при организации файла .cpp с деревом пространств имен.

Это стандарт или он работает случайно?

1 Ответ

0 голосов
/ 30 ноября 2018

Это стандарт или он просто работает случайно?

Это правильно, а не результат аварии.ИМО это тоже лучший подход.Я думаю, что это лучше, так как вам не нужно повторять пространства имен.

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