二元作用域运算符(::)在不同的地方有不同的含义
1,如果成员函数中定义了和类域中的变量同名的变量,则类域中的变量被块作用域中的变量隐藏。这时可以在变量名前面加类名和作用域运算符(::)访问这种隐藏变量。
eg:
class A{ private: int num = 2; public: void func() { int num =7; cout<<"成员变量:"<<A::num<<endl; } };
2,可以用一元作用域运算符访问隐藏的全局变量
double a = 5.4; int main() { double a = 3.3; cout<<"全局变量"<<::a<<endl; return 0; }
3,定义类中声明的成员函数时可以用类名和二元作用于运算符::,将每个成员函数“绑定到”声明成员函数与数据成员的类定义上。