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。
当作为类作用符时可用来决议多继承中的重名成员,指定类成员及函数等。
当作为命名空间域作用符时可有效的防止全局作用域命名冲突。