c++ - 实现方法时如何使用命名空间?

标签 c++ class namespaces header-files

我在 .hpp 行中有一个类声明,该行包含在命名空间中:

namespace mylib
{
    class MyClass
    {
        public:

        MyClass();
    }
}

我计划在 .cpp 文件中实现该类的功能。

然而,这两种方法似乎都有效:

mylib::MyClass::MyClass()
{
}

namespace mylib
{
    MyClass::MyClass()
    {
    }
}

所以我想知道这些方法之间有什么区别,我是否应该更喜欢其中一种方法。

最佳答案

这是个人喜好。但是,您可以使用带括号的 namespace 关键字来保存代码。此外,这些内容可能更易于阅读(无论如何都知道所有内容都在同一个命名空间中)。

另外请记住,一旦您开始使用在您的类中定义的自定义类型,例如,不使用 namespace 可能会变得相当乏味和困惑。用作返回或参数类型的不同本地类:

myNamespace::myClass::myType &myNamespace::myClass::doSomething(const myNamespace::myOtherClass &theOther) {
    // ...
}

namespace myNamespace {
    myClass::myType &myClass::doSomethingDifferent(const myOtherClass &theOther) {
        // ...
    }
}

关于c++ - 实现方法时如何使用命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14149624/

相关文章:

c++ - 使用 SIMD (AVX2) 进行稀疏数组压缩

php - 如何使用 php Soap 库向 SoapHeader 节点添加属性

random - 使用命名空间来处理阴影标识符

JavaScript 命名空间和 jQuery

c++ - 重载 operator<< 以作为成员打印

c++ - 搜索二叉树函数不起作用 c++

php - 调用非对象的成员函数,但对象是 $this 即它本身?

PHP:在类外部或构造函数中定义常量?

android - 在类中使用 getString()

c++ - 禁用 sd 卡磨损均衡