头文件中分裂的命名空间

Splitted namespace in header file

本文关键字:命名空间 分裂 文件      更新时间:2023-10-16

我目前正在做一个现有的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声明有什么不同吗?我以前从来没见过……

谢谢你的帮助!

不,完全没有功能差异。

显然程序员喜欢将前向声明完全分开,现在我想一下,这实际上在风格上是有意义的。