实现方法时如何使用命名空间?
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 命名空间?