今天宠物迷的小编给各位宠物饲养爱好者分享作用域运算符的功能是的宠物知识,其中也会对:: 域运算符的作用是什么?(作用域运算符通常用来指定特定的类)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
1、:: 域运算符的作用:
"如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上"::","::"称为作用域运算符。
2、:: 域运算符的举例:
//作用域
#include
using namespace std;
int avar=10; //全局变量avar
int main()
{
int avar=20; //局部变量avar
cout<<"avar is: "<<avar<<endl; //访问局部变量
avar=25; //1 //修改局部变量
cout<<"avar is: "<<avar<<endl;
cout<<"avar is: "<<::avar<<endl; //访问全局变量
::avar=30; //2 //修改全局变量
cout<<"avar is: "<<::avar<<endl;
return 0;
}
::运算符?
一般是在类外定义函数时要用
比如:
class a{
private:
......//元素
public;
a();//构造函数
void search();//一个类里面的函数。
}
现在上面两个函数在类外定义:
a::a()
{}
void a::serach()
{}
大致就是这样,可能我表述的不是很明白,可以追问哦亲
看用于何处,三目运算中:
int a=2, b, c=3;
b=(a>c)?a:c;
这里的冒号 分隔了 a 和 c 两个表达式。
(a>c)? 是条件表达式,如果值 为 真,则执行 冒号前的表达式 a, 为假,则执行 冒号 以后 的 表达式 c.
注解行里 是 注解, 例如: // H: height, W: width
':' -- 字符常量
":" -- 字符串
通常情况下,如果有两个同名变量,一个是全局变量,另一个是局部变量,那么局部变量在其作用域内具有较高的优先权,它将屏蔽全局变量,看看下面的例子吧: #include using namespace std; int avar=10; int main(); { int avar; avar=25; cout<<"avar is "<<avar<<endl; return 0; } 程序的输出结果是 avar is 25 此时,在main函数的输出语句中,使用的变量avar是main函数内定义的局部变量,因此结果为局部变量的值。如如果我们希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::”,此时::avar代表全局变量,::就是作用域运算符,看下面的例子: #include using namespace std; int avar; int main(); { int avar; avar=25; ::avar=10; cout<<"local avar = "<<avar<<endl; cout<<" global avar = "<<::avar<<endl; return 0; } 结果是: local avar =25 global avar =10 重这个例子可以看出,作用域运算符可以用来解决局部变量与全局变量的重名问题,即在局部变量的作用域内,可用::对被屏蔽的同名的全局变量进行访问。
这是为了提高代码的可读性。
作用域解析运算符::使用方法如下:
1 域名::函数/类型定义 表示定义某个域的函数/类型
2 ::函数/类型调用 表示调用全局的函数/类型
补充:当函数/类型已经在某个特定域内,则可以省略域名,也可以不省略
依据补充条件,人们往往不省略,以方便在较为复杂的文件中表明某个函数/类型所属的域 ,增加代码的可读性。
<<是左移运算符号,是把操作数看成二进制数,然后左移指定的位数,生成新的值
而C++标准库的Stream类重载了<<运算符,使之成为流的输出符号
和=(赋值运算符)没有关系
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“:: 域运算符的作用是什么?”
上一篇
电脑内存条哪个牌子好?
下一篇
泰迪狗吃了羊肉汤吐怎么办