在命名空间内部或外部实现c ++函数?

时间:2017-08-24 17:45:23

标签: c++ namespaces

我是C ++的新手,我想知道什么是更好/更清洁?

  1. 在命名空间中实现函数
  2. 使用完全限定名称来实现它
  3. e.g:

    //foo.h
    namespace foo
    {
        void bar();
    }
    

    1)

    //foo.cpp
    namespace foo
    {
        void bar()
        {
            //do something
        }
    }
    

    或2。)

    //foo.cpp
    void foo::bar()
    {
        //do something
    }
    

2 个答案:

答案 0 :(得分:2)

对于生成的编译代码没有任何区别以前。这完全是一种风格问题。

使用您最喜欢的内容(或者您正在使用的代码库的当前样式)。

答案 1 :(得分:2)

第一个选项更适合分组和组合同一命名空间的多个函数,如果你有多个函数,它会更清晰,更简洁。

第二个在语义上是相同的,但如果在同一名称空间中有许多函数,则不太友好。