C++ 在CPP文件中用名称空间作为函数定义的前缀是否是一种好的做法?

C++ 在CPP文件中用名称空间作为函数定义的前缀是否是一种好的做法?,c++,C++,问题>我看到了两种处理CPP文件中名称空间的方法。在大型项目中,哪种方法更好(即方法1或方法2) 谢谢我想这在很大程度上取决于您个人的喜好,此外,还取决于您编写代码时所使用的代码库 我更喜欢使用namespace NameOne添加。方法1增加了缩进,方法2使声明更长,但这只是个人观点。只需在代码(和代码库)中保持一致即可。这是我使用名称空间X的唯一情况 我认为这是一个不错的用法(但我仍在考虑),但我愿意听取其他观点 在文件Bar.cpp中 我一直在体验: // Bar in namespace

问题>我看到了两种处理CPP文件中名称空间的方法。在大型项目中,哪种方法更好(即方法1或方法2)


谢谢

我想这在很大程度上取决于您个人的喜好,此外,还取决于您编写代码时所使用的代码库

我更喜欢使用namespace NameOne添加
。方法1增加了缩进,方法2使声明更长,但这只是个人观点。只需在代码(和代码库)中保持一致即可。

这是我使用
名称空间X的唯一情况
我认为这是一个不错的用法(但我仍在考虑),但我愿意听取其他观点

在文件Bar.cpp中 我一直在体验:

// Bar in namespace Foo
#include "Bar.h"

// Only do this for the class I am defining
using namespace Foo;
Bar::Bar()
{
}
void Bar::stop()
{
}
// etc

如果它不在头文件中,只要保持一致就无所谓了。我个人比较喜欢第一种方法,因为当你读函数名时名字空间并不是很重要。< / P> < P>我记得我在读的时候,把名字空间引入C++中,方法2是最好的方法,当然比方法1更可取,这就是我一直使用的。< /P> < P>你为什么使用命名空间是因为通常用于在具有一致函数的组/包中收集类/方法,以便它们与其他库或名称空间中的定义(字面上和功能上)不一致


因此,我更喜欢在cpp文件中使用名称空间Foo
,因为大多数时候我在同一名称空间中引用不同的类。如果我需要使用另一个名称空间中的类,我肯定会使用
Foo2::
后缀。它保持了实现的名称空间与其他名称空间之间的距离。

我总是这样做,但我也通常使用较短的名称空间名称,并且不使用大写字母。第一种方法也涉及较少的冗余(因此键入更少,必要时更容易更改)。@edA-qamort-ora-y:I不;I don’我不喜欢一个基于
更少键入的
的论点,它看起来很懒。虽然我只同意一点修改(这样就不太可能出现意外错误)。少打字也意味着少打字的机会。@LokiAstari,redundancy=bug,句号。代码越少,维护工作就越少。代码越少,出现重复错误的可能性就越小。说到代码,越少越好。@edA-qamort-ora-y:我同意这个原则=>越少的冗余,代码就越好,错误就越少,这是一个好目标。我不同意=>为了打字而少打字是一个好目标。懒惰的人会将其应用于不恰当的情况,并以此作为理由。
// Bar in namespace Foo
#include "Bar.h"

// Only do this for the class I am defining
using namespace Foo;
Bar::Bar()
{
}
void Bar::stop()
{
}
// etc
// Bar in namespace Foo
#include "Bar.h"

// Only do this for the class I am defining
using Foo::Bar;
Bar::Bar()
{
}
void Bar::stop()
{
}
// etc