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

Posted

技术标签:

【中文标题】实现方法时如何使用命名空间?【英文标题】: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()
    
    

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

【问题讨论】:

完全没有区别... 【参考方案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 中的顺序相反。我的答案也颠倒了顺序。确实很混乱!

以上是关于实现方法时如何使用命名空间?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET 网站项目从开始(构建)到结束(运行时)如何实现自动生成的 ASP 命名空间?

C# - 如何检查 C# 中是不是存在命名空间、类或方法?

C++命名空间成员访问不同文件如何? “命名空间标准”是如何实现的?

如何复制 XMLList 并保留命名空间?

C#中如何获得指定命名空间中所有自定义类的信息

“使用命名空间”如何在C ++中工作