Разделенное пространство имен в заголовочном файле

#c #namespaces

#c #пространства имен

Вопрос:

В настоящее время я работаю над существующим проектом c .

Во время анализа кода я обнаружил заголовочные файлы, содержащие определение пространства имен, разделенное на две части (см. c1.h). Первая часть содержит прямые объявления, а вторая часть содержит объявление класса.

c1.h

 namespace a { namespace b {
    class c2;
    class c3;
}} 

namespace a { namespace b {
    class c1
    {
        public:
            //...
        private:
            //...
    };
}}
  

c1_foo.h

 namespace a { namespace b {
    class c2;
    class c3;

    class c1_foo
    {
        public:
            //...
        private:
            //...
    };
}}
  

Мой вопрос:

Есть ли какая-либо причина для разделения этого на две логические части? Объявляет ли c1_foo.h что-нибудь другое? Я никогда не видел этого раньше…

Спасибо за вашу помощь!

Комментарии:

1. Это всего лишь вопрос стиля кодирования, этот разработчик хочет иметь в начале файла все предварительные объявления, возможно, если у вас есть 4-5 классов в этом файле, легче найти то, что вы ищете.

Ответ №1:

Нет, функциональной разницы вообще нет.

По-видимому, программисту нравится сохранять объявления forward полностью отдельными, что на самом деле имеет стилистический смысл теперь, когда я думаю об этом.