使用命名空间成员

using 声明

  • 引入一个命名空间中的一个成员
  • 隐藏外层作用域的同名实体
  • using 声明的有效范围到其所在的作用域结束为止

using 指示

  • 引入一个命名空间中所有成员
  • 不能出现在类作用域中。
  • 可以出现在局部作用域中,但会被视为出现在最近的外层作用域中
  • 会与外层作用域的同名实体冲突,使用同名实体时会出现二义性错误,这与 using 声明的行为截然相反
  • 有效范围也到其所在的作用域结束为止

使用建议

  • 头文件中不应在顶层作用域使用 using 指示或 using 声明。
  • 最多在函数或命名空间内部使用