繁体   English   中英

C ++命名空间和静态变量

[英]C++ namespace and static variables

我有一个要求,其中一个(const)变量应该在整个cpp中可用,它由几个类组成。 我决定使用命名空间来解决问题,但不确定以下内容:

  • 我需要将此变量定义为静态吗?
  • 只有当我使用未命名的命名空间时,我才能避免使变量变为静态吗?
  1. 您不需要将变量定义为静态,也不需要在匿名命名空间中定义。 但是,如果您没有在其定义的文件之外使用此对象,那么减少名称空间污染和加速链接(通过减少链接器需要考虑的符号数量)是一个好主意。
  2. 如果在匿名命名空间中声明变量,它将是有效的静态。 实际上也没有必要让它静止(尽管如果你愿意,你也可以)。 匿名命名空间的优点是您还可以定义类型(类,结构,枚举,类型定义)以及静态变量和函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM