【问题标题】:How to use namespaces when implementing methods?实现方法时如何使用命名空间?
【发布时间】:2013-01-04 00:53:29
【问题描述】:

我在命名空间中的 .hpp 行中有一个类声明:

namespace mylib
{
    class MyClass
    {
        public:

        MyClass();
    }
}

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

但是,这两种方法似乎都有效:

mylib::MyClass::MyClass()
{
}

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

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

【问题讨论】:

  • 完全没有区别...

标签: c++ class namespaces header-files


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    mylib:: 包含 7 个字符

    namespace mylib { } 包含 16 个字符(不包括空格)

    因此,通过使用第二种形式,只要定义 3 个或更多方法,就可以节省输入时间。

    【讨论】:

    • 觉得你弄糊涂了。一旦你有 3 种方法,使用 namespace 会更短。
    • @Mario 他们在 OP 中的顺序相反。我的答案也颠倒了顺序。确实很混乱!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-22
    • 2015-04-17
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多