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

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

"::"在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;
}
相关文章
|
算法 C++ 索引
【C++STL基础入门】深入浅出string类查找字串、返回字串和交换操作
【C++STL基础入门】深入浅出string类查找字串、返回字串和交换操作
891 1
|
存储
ASCII码可以表示汉字吗?
ASCII码可以表示汉字吗?
4194 0
|
机器学习/深度学习 存储 编解码
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
12687 1
Open3d系列 | 3. Open3d实现点云上采样、点云聚类、点云分割以及点云重建
|
虚拟化
【错误记录】VMware 虚拟机报错 ( 虚拟化性能计数器需要至少一个可正常使用的计数器, 模块 “VPMC“ 启动失败 , 未能启动虚拟机 )
【错误记录】VMware 虚拟机报错 ( 虚拟化性能计数器需要至少一个可正常使用的计数器, 模块 “VPMC“ 启动失败 , 未能启动虚拟机 )
8053 0
【错误记录】VMware 虚拟机报错 ( 虚拟化性能计数器需要至少一个可正常使用的计数器, 模块 “VPMC“ 启动失败 , 未能启动虚拟机 )
|
9月前
|
缓存 网络协议 Shell
ADB各种操作指令详解大汇总
这篇文章提供了ADB(Android Debug Bridge)的详细操作指令汇总,包括设备管理、应用操作、日志查看、文件操作、屏幕截取与录制、Shell命令使用等。
1023 2
|
6月前
|
编译器 C语言
【C语言】宏定义详解
宏定义(Macro Definition)是C语言预处理器的一部分,通过`#define`指令引入。宏定义在编译前的预处理阶段进行文本替换,即将代码中的宏名替换为定义的内容。
1112 6
|
9月前
|
机器学习/深度学习 人工智能 算法
人工智能浪潮下的编程新范式
【9月更文挑战第27天】在AI技术飞速发展的今天,编程领域也迎来了新的变革。本文将深入探讨AI如何改变编程范式,以及这种变革对程序员和整个软件开发行业的影响。通过分析AI技术的特点和优势,我们将揭示它如何为编程带来更高效、智能的解决方案,并展望这一趋势对未来软件开发的深远影响。
151 2
|
10月前
|
Ubuntu Linux 数据安全/隐私保护
wsl2 安装 xfce4 桌面
wsl2 安装 xfce4 桌面
901 0
|
8月前
|
数据可视化 Linux 网络安全
如何使用服务器训练模型
本文介绍了如何使用服务器训练模型,包括获取服务器、访问服务器、上传文件、配置环境、训练模型和下载模型等步骤。适合没有GPU或不熟悉Linux服务器的用户。通过MobaXterm工具连接服务器,使用Conda管理环境,确保训练过程顺利进行。
656 0
如何使用服务器训练模型
|
8月前
|
机器学习/深度学习 数据可视化 自动驾驶
YOLO11-seg分割如何训练自己的数据集(道路缺陷)
本文介绍了如何使用自己的道路缺陷数据集训练YOLOv11-seg模型,涵盖数据集准备、模型配置、训练过程及结果可视化。数据集包含4029张图像,分为训练、验证和测试集。训练后,模型在Mask mAP50指标上达到0.673,展示了良好的分割性能。
3215 4