经常看到别人的代码里有::,却不知道是用来干什么的。于是查了一下资料,终于明白了!与大家分享。
1、表示作用域和所属关系
作用域符号“::”的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。
例如:A,B表示两个类,在A,B中都有成员member。
那么:
1、A::member就表示类A中的成员member。
2、B::member就表示类B中的成员member。
2、作用域分解运算符
例如:声明了一个类A,类A里声明了一个成员函数int b(),但没有在类的声明里给出b的定义,那么在类外定义b时, 就要写成int A::b( ),表示这个b( )函数是类A的成员函数。
举个栗子!
class A
{
public:
int b();
}
int A::b()
{
return 0;
}
3、表示引用成员函数及变量,作用域成员运算符
e.g. System::Math::Sqrt( ) 相当于System.Math.Sqrt( )
4、全局作用域符
用法(::name)
全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分
e.g.
int a;
void test()
{
int a = ::a;//用全局变量a给局部变量a赋值
}
5、namespace scope(命名空间作用域符)
用法(namespace::name)
e.g. std::cout<<“test”<<std::endl;
文章参考了百度。