::作用域运算符(C++中.和::和:和->的区别)

it2023-05-27  71

 ::是运算符中等级最高的,它分为三种:全局作用域符,类作用域符,命名空间作用域符

1.全局作用

全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:    char zhou; //全局变量    void sleep()    {    char zhou; //局部变量    zhou(局部变量) = zhou(局部变量) *zhou(局部变量) ;    ::zhou(全局变量) =::zhou(全局变量) *zhou(局部变量);    }

2.类作用

作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为了避免不同的类有名称相同的成员而采用作用域的方式进行区分   如:A,B表示两个类,在A,B中都有成员member。那么   A::member就表示类A中的成员member   B::member就表示类B中的成员member

3.命名空间

"::"是作用域限定符或者称作用域运算符或者作用域操作符(scope operator).例如命名空间

"::"作用:namespace::name

    :: 的另一种用法

    直接用在全局函数前,表示是全局函数。当类的成员函数跟类外的一个全局函数同名时,在类内定义的时候,打此函数名默认 调用的是本身的成员函数;如果要调用同名的全局函数时,就必须打上::以示区别。比如在VC里,你可以在调用API函数时,在API函数名前加::。

在学习C++的过程中我们经常会用到.和::和:和->,在此整理一下这些常用符号的区别。

1、A.B则A为对象或者结构体;

2、A->B则A为指针,->是成员提取,A->B是提取A中的成员B,A只能是指向类、结构、联合的指针;

3、::是作用域运算符,A::B表示作用域A中的名称B,A可以是名字空间、类、结构;

4、:一般用来表示继承;

最新回复(0)