您的位置:首页 > 编程语言 > C语言/C++

C++的双冒号

2015-12-27 17:14 375 查看
转载地址:
http://blog.sina.com.cn/s/blog_542bad910102vib1.html
1、

作用域符号::的前面一般是类名称,后面一般是该类的成员名称,C++为例避免不同的类有名称相同的成员而采用作用域的方式进行区分

如:A,B表示两个类,在A,B中都有成员member。那么

A::member就表示类A中的成员member

B::member就表示类B中的成员member

2、

全局作用域符号:当全局变量在局部函数中与其中某个变量重名,那么就可以用::来区分如:

charzhou;//全局变量

voidsleep()



charzhou;//局部变量

char(局部变量) = char(局部变量) *char(局部变量) ;

::char(全局变量) =::char(全局变量) *char(局部变量);



3、

::是C++里的“作用域分解运算符”。比如声明了一个类A,类A里声明了一个成员函数voidf(),但没有在类的声明里给出f的定义,那么在类外定义f时,就要写成voidA::f(),表示这个f()函数是类A的成员函数。例如

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20
class
CA
{


public
:


int
ca_var;


int
add(
int
a,
int
b);


int
add(
int
a);


};


//那么在实现这个函数时,必须这样书写:


int
CA::add(
int
a,
int
b)


{


return
a
+ b;


}


//另外,双冒号也常常用于在类变量内部作为当前类实例的元素进行表示,比如:


int
CA::add(
int
a)


{


return
a
+ ::ca_var;


}


//表示当前类实例中的变量ca_var。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: