操作符重载
来源:互联网 发布:informix批量生成数据 编辑:程序博客网 时间:2024/06/17 19:13
操作符合函数相似,操作符不用包含头文件,就可以访问到操作符,编译环境已经定义好了操作符,所以可以在自己的程序中对操作符重载(<iostream>中其实也有包含对<< >>的重载),有几种方式对操作符重载:
1.在文件中直接重载,属于文件可见。
2.在类中friend重载,这个操作符是由friend修饰,所以他并不是属于这个类的,即如果在外部定义,那么外部的也可以访问到(如果定义也在类内部部,那只有类内可见)。
2.定义为类的成员函数,这时候,类自身为操作符重载默认的第一个参数。(这样定义有需要注意的地方,由于操作符不同函数,函数的参数在括号内,有类对象的要用 "." 表示归属。操作符参数在符合周围,并且第一个参数还有表示类对象的归属特性,那么这样在外部再次重载时候可能会产生调用冲突 )
示例如下:
Game.h
#include <iostream>
#include <ostream>
using namespace std;
class Game
{
public:
Game() { status = 0; }
ostream & operator<<(Game & game)
{
cout << game.status;
return cout;
}
private:
int status;
};
#endif
main.cpp
#include <iostream>
#include "Game.h"
using namespace std;
ostream &operator<<(Game &game1, Game &game2)
{
cout << 4 << endl;
return cout;
}
int main()
{
Game game;
//game<<game;//error,主要原因是操作符参数格式问题(第一个即表示参数有表示归属相当于".")于是类内和外部的产生冲突,如果是其他一般函数,则不会遇到这种情况
return 0;
}
- c++重载操作符
- C++ 操作符重载
- 操作符重载浅析
- 操作符重载
- 10.8 操作符重载
- 操作符重载
- 操作符重载手册
- C#操作符重载
- 操作符重载手册
- 操作符重载手册
- 六操作符重载
- 操作符的重载
- C#操作符重载
- 多态,操作符重载
- 操作符重载集锦
- 重载操作符
- 操作符重载
- 操作符重载手册
- SWT/JFace的对话框
- tecnich job server web
- Android 4.0的图形硬件加速及绘制技巧
- VB.net中 excel 的range方法
- struts基本原理图
- 操作符重载
- left join ,right join 和 inner join 的区别
- 以前看《perl24》书做的部分笔记(zz)
- Delphi2010强化的反射
- servlet页面跳转
- 《算法导论》 7-3 Stooge排序
- 如何定义一个简单的Concurrent Program
- 连接http接口方法
- ASP.NET中CKEditor+CKFinder的配置方法