天天看点

:: 是什么意思?

经常看到别人的代码里有::,却不知道是用来干什么的。于是查了一下资料,终于明白了!与大家分享。

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;

文章参考了百度。

继续阅读