相关疑难解决方法(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万
查看次数

118
推荐指数
3
解决办法
3万
查看次数

将结构放在匿名命名空间中的作用是什么?

可能重复:
为什么使用未命名的命名空间以及它们有什么好处?

查看someones代码,这是他们声明的内容:

namespace {

  struct myStruct {
     int x;
     int y;
  } obj1;

}
Run Code Online (Sandbox Code Playgroud)

..在一个函数我看到它像这样使用:

myStruct& var = obj1;
Run Code Online (Sandbox Code Playgroud)

(注意namespace是匿名的.)

从我如何使用它,我无法弄清楚为什么它被声明和使用这样.

宣布这样做的做法有何不同?

另外,为什么指针是这样创建的而不是这里显示的传统样式.即myStruct*ptr;

谢谢!

c++ oop namespaces object data-structures

4
推荐指数
1
解决办法
1974
查看次数

我应该总是将我的全球职能内部联系起来吗?

我有一个TU,其全局功能不会被任何其他TU使用.我读到它声明它们static给了它们内部的联系,从优化的角度来看这是好的.但我想知道我应该使用它们的正确情况.当我知道它们不会在程序中的任何其他地方使用时,我是否应该始终给出全局函数/变量内部链接?

c++ linkage

1
推荐指数
1
解决办法
63
查看次数