#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 полностью отдельными, что на самом деле имеет стилистический смысл теперь, когда я думаю об этом.