C++作用域运算符

C++作用域运算符是C++运算符中等级最高的。::运算符的本质是:左操作数为域,是一个scope,右操作数是这个scope中的一个名字,它可以是一个scope、class、member、function或者variable等。

google style对域作用符的建议和说明可参考:

http://zh-google-styleguide.readthedocs.io/en/latest/google-cpp-styleguide/scoping/#namespaces

作用域运算符作用

::的作用主要包括以下三种:

  • 全局作用域符(::name)
  • 类作用域符(class::name)
  • 命名空间作用域符(namespace::name)

后两种比较常见,不做说明。全局作用符的作用是:如果程序中既定义了全局变量a,也定义了局部变量a,此时若要访问全局变量a,则需要使用::a来访问全局变量a。

当作为类作用符时可用来决议多继承中的重名成员,指定类成员及函数等。

当作为命名空间域作用符时可有效的防止全局作用域命名冲突。