::操作符的作用
来源:互联网 发布: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();
}
一个是引用类的方法和成员,比如有一类,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();
}
- ::操作符的作用
- concatMap操作符的作用
- JAVA instanceof操作符的作用
- 作用域操作符 :: 的理解
- Python星号操作符的作用
- 操作符结合性的作用
- Rxjava,rxandroid中的操作符的作用
- 作用域操作符 ::
- javascript中加号(+)操作符的一些神奇作用
- 谁来讲讲Rxjava、rxandroid中的操作符的作用?
- swift ? 问号 和 !叹号 操作符的作用
- 记录一下一些RxJava的操作符作用
- 解析作用域操作符
- mysql 外键的作用,级联操作,起到约束作用
- NSUserDefaults的同步操作的作用
- TCP端口的作用、漏洞和操作
- AD五种操作主机的作用
- mappedBy的作用Cascade 级联操作
- 安静的等你。。。
- 陋室铭
- ajax与servlet的一个简单分页
- 想要学习的东西
- const的用法
- ::操作符的作用
- Hello Ajax World
- 关于生成不重复随机数组的问题?
- 类静态成员和非静态成员属于类还是对象
- ASSERT的用法
- WINAPI和CALLBACK这两个宏有什么区别
- fckedit详细使用说明
- 一个用ajax实现表格拖拽
- 使用回调函数监视请求