具名的名字空间
具名的名字空间使用方式如下:
用名字空间把文件包含, gflags 的声明/定义, 以及类的前置声明以外的整个源文件封装起来, 以区别于其它名字空间:
// .h 文件
namespace...…
}
} // namespace mynamespace
通常的 .cc 文件包含更多, 更复杂的细节, 比如引用其他名字空间的类等....最好不要使用 using 指示,以保证名字空间下的所有名称都可以正常使用.
// 禁止 —— 污染名字空间
using namespace foo;
在 .cc 文件, .h 文件的函数, 方法或类中,...// 允许: .cc 文件中
// .h 文件的话, 必须在函数, 方法或类的内部使用
using ::foo::bar;
在 .cc 文件, .h 文件的函数, 方法或类中, 允许使用名字空间别名....译者 (YuleFox) 笔记
cc 中的匿名名字空间可避免命名冲突, 限定作用域, 避免直接使用 using 关键字污染命名空间;
嵌套类符合局部使用原则, 只是不能在其他头文件中前置声明, 尽量不要