::操作符的作用

来源:互联网 发布:cms网页 编辑:程序博客网 时间:2024/05/01 11:07
主要两个用处:
一个是引用类的方法和成员,比如有一类,A,中的一方法a,在定义方法时一般写作A::a(...);
另一个用来指出这个函数为“全局”函数;另外在MFC中要调用API,一般也用::,比如调用MessageBox,写作::MessageBox,其实有与没有差别不大。
但在以下情况必须有:
1、某全局函数与某个类方法名称参数定义一致,在这个类里需要调用这个全局函数时,一定要加::,否则编译器会链接你的类方法。
2、某全局变理与类变量名称一样,在类里访问这个全局变量必须加::
一般好的风格是加,好处有:
1、一眼便知是全局的,便于阅读、维护;
2、方便某一天为类扩充了一个函数或成员变量与全局的冲突了,而编译不报错,它自作主张地使用了你类的方法或变量,埋个地雷让你踩。
举例如下:
#include <iostream.h>
int a=1; //global identifier
void output(){ //global function
cout<<"global identifier a="<<a<<endl;
}
class illustration{
public:
void output(){ //local function
  a=0;
  cout<<"local identifier a="<<a<<endl;
  cout<<"global identifier a="<<::a<<endl;//global identifier
}
void init(){
  output();//the function belong to the class illustration or its father class...(注意此处的不加::的函数的意思)
  ::output();//global function
}
private:
int a; //local identifier
};
void main(){
illustration b;
b.init();
}    
原创粉丝点击