相关疑难解决方法(0)

为什么使用未命名的命名空间以及它们有什么好处?

我刚刚加入了一个新的C++软件项目,我正在尝试理解这个设计.该项目经常使用未命名的命名空间.例如,类定义文件中可能会出现这样的情况:

// newusertype.cc
namespace {
  const int SIZE_OF_ARRAY_X;
  const int SIZE_OF_ARRAY_Y;
  bool getState(userType*,otherUserType*);
}

newusertype::newusertype(...) {...
Run Code Online (Sandbox Code Playgroud)

可能导致使用未命名的命名空间的设计注意事项是什么?有哪些优点和缺点?

c++ oop namespaces

220
推荐指数
6
解决办法
11万
查看次数

在C++中,什么是"命名空间别名"?

什么是C++中的"命名空间别名"?怎么用?

c++ namespaces

146
推荐指数
2
解决办法
5万
查看次数

c ++标题中的"using namespace"

在我们所有的C++课程,所有的老师总是把using namespace std;在之后#include在它们的S .h文件.从那时起,我觉得这很危险,因为在另一个程序中包含该标题我会将命名空间导入到我的程序中,可能没有意识到,打算或想要它(标题包含可以非常深入嵌套).

所以我的问题是双重的:我是对的,using namespace不应该在头文件中使用,和/或是否有某种方法来撤消它,例如:

//header.h
using namespace std {
.
.
.
}
Run Code Online (Sandbox Code Playgroud)

还有一个问题是:标题文件是否应该是#include相应.cpp文件所需的所有标题,只有那些标题定义所需的标题,并让.cpp文件#include为其余标题,或者没有,并声明它需要的所有内容extern
问题背后的原因与上面相同:在包含.h文件时我不想要惊喜.

另外,如果我是对的,这是一个常见的错误吗?我的意思是在现实世界的编程和"真正的"项目中.

谢谢.

c++ namespaces header-files

115
推荐指数
7
解决办法
7万
查看次数

标签 统计

c++ ×3

namespaces ×3

header-files ×1

oop ×1