为什么会学习到双冒号作用域运算符,是因为在 QT 中使用到通过 C 语言调用函数 open 和 close 来操作LED设备文件时,需要在open 和 close 的前面加上 “::” 。
![在这里插入图片描述](https://img-blog.csdnimg.cn/89448496c35a439185052ebcf2ef2989.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAeHVlY2hhbmJh,size_15,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/c3affdc6c25b4de3bc0cd2d957c55ff5.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/0ed682b7284e4279a99d41797b5cc6bd.png)
先看一个事例:
#include <iostream>
using namespace std;
int atk = 200;
void test01()
{
int atk = 100;
cout << "攻击力为:" << atk << endl;
cout << "全局攻击力为:" << ::atk << endl;
}
int main()
{
test01();
return 0;
}
在 C 语言下没有这种用法,这是 C++ 对 C 语言的扩充。
双冒号是作用域运算符。
当上述代码中的语句写成这样:
std::cout << "攻击力为:" << atk << std::endl;
std::cout << "全局攻击力为:" << ::atk << std::endl;
连 using namespace std; 都可以省略了。
以此来理解上面在 QT 中遇到的情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)