分享

在C++中 :: 的三种意思

 流楚丶格念 2022-01-14

"::"在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;
}

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多