"::"在C++中表示作用域,和所属关系。"::"是运算符中等级最高的,它分为i三种,分别如下:
ps ::在最开头就是全局
::在最开头开始,表示顶层命名空间(全局变量)
std::string <==> ::std::string
这样也可以。::和 文件路径的 / 可以对照理解。(Linux系统下理解更加便捷,linux下面没有盘符之分, 只有一个盘)
下面这俩其实是一样的
/usr/share/a.txt a.txt 位于 /usr/share目录下 /a.txt a.txt直接位于硬盘下。第一个/就代表硬盘根目录。
一、作用域符号:
作用域符号”::“的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分。
例如:A,B表示两个类,在A,B中都有成员member。
class A{ int member; }; class B{ int member; }; A::member; B::member;
那么:
1、A::member就表示类A中的成员member。
2、B::member就表示类B中的成员member。
二、全局作用域符号:
全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用 :: 来区分,例如:
int a; // 全局变量 void test () { int a = ::a;//用全局变量,给本地变量a赋值 }
三、作用域分解运算符:
::是C++里的作用域分解运算符,“比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如:
class A { public: int test(); } int A::test()//表示test是属于A的 { return 0; }