在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;
}
相关文章
|
6月前
|
安全 C++
【C++11保姆级教程】移动构造函数(move constructor)和移动赋值操作符(move assignment operator)
【C++11保姆级教程】移动构造函数(move constructor)和移动赋值操作符(move assignment operator)
200 0
|
6月前
|
Shell
在Bash中检查变量是否为空的几种方法
在Bash中检查变量是否为空的几种方法
490 0
在Bash中检查变量是否为空的几种方法
|
Rust 算法 数据安全/隐私保护
【密码学】一文读懂XTEA加密
本篇文章,我们来看一下上一次讲过的TEA加密算法的一个升级版XTEA, 相比于TEA, XTEA的安全性显然是更高的,其中的过程要比TEA稍微复杂一点点。
1016 0
【密码学】一文读懂XTEA加密
|
Android开发
解决 Android Studio 日志乱码
解决 Android Studio 日志乱码
1060 0
解决 Android Studio 日志乱码
|
9月前
|
存储 监控 算法
【JavaSE专栏18】用大白话讲解 Java 中的内存机制
【JavaSE专栏18】用大白话讲解 Java 中的内存机制
180 0
|
8月前
|
JavaScript
Vue路由(详解)
Vue路由(详解)
|
存储 监控 Shell
|
10月前
|
数据安全/隐私保护 Python
【python3.6】python安装PCL(适用命令行或pycham中)
【python3.6】python安装PCL(适用命令行或pycham中)
1207 0