好久没有写操作符重载了 自己重新写了个 温习了一下细节 温习友元 this const 引用
2014-05-19 14:30
447 查看
#include <iostream> using namespace std; class Point { public: Point(int _x, int _y) : x(_x), y(_y) {} void setPoint(int _x,int _y) { x = _x; y = _y; } void print() { cout<<"< "<<x<<ends<<y<<" >"<<endl; } friend Point operator+(const Point& a, const Point& b); //这里写友元是因为此函数不属于该类的成员函数 又要操作该类的私有成员变量 Point operator-(const Point& b);//类成员重载操作符 不能传2个参数 因为有个this指针占一个 this指针代表自己 private: int x; int y; }; Point operator+(const Point& a, const Point& b)//引用是为了避免调用+操作符时将形参传给实参的开销 const是为了使用引用之后避免修改了参数的值 导致外部参数被改 { Point s(0,0); s.setPoint(a.x+b.x, a.y+b.y); return s; } Point Point::operator -(const Point& b) { Point s(0,0); s.setPoint(this->x-b.x, this->y-b.y);//类成员重载操作符 利用this指针进行操作 return s; } void main() { Point a(3,7); Point b(4,8); Point c(0,0); (a+b).print(); //7 15 operator+(a,b).print(); //7 15 (b-a).print(); //1 1 //c = a+b; //c.print(); }
相关文章推荐
- 注册一个月了,一直没有来,今天开始决定记录一下自己的所见所学所感!
- 没事不要重载引用类的相等操作符……
- 重新认识一下自己
- 好久没有写了,贴上一段代码刷新一下
- 模仿写的cstring类,操作符没有完全重载(-=,-)
- 好久没有写了,最近心情不好,老决定自己应该做点事情了,但是碌碌无为呀。
- 好久没有写随笔了,今天在网上偶然搜到了自己的博客。
- 随笔,好久没有上自己BLOG了,也好久没有来CSDN了
- 好久没有上来了,为自己打打气
- 今天买了一本雅思英语,个人感觉编的很好,好久没有遇到好书了。自己坚持,英文资料才是王道
- 借五一更新一下Blog了,好久没有更新了。惭愧!
- 记录一下,每次都不记得自己排名变化没有
- 好久没有来makefile了……补充一下makefile中 .h文件的问题
- 最近项目太忙,都没有时间来更新BLOG自己检讨一下
- 好久没有上来了。自己都不好意思了。都快忘记自己也是一个程序员了。
- 自己做的几个小软件(数学工具和游戏),用C/C#制作,用到许多相关的C#技术细节,可以免费提供下载,感兴趣的,来看一下
- 好久没有更新了,帮朋友宣传一下
- 我的Blog重新开张,给自己庆祝一下。
- 重新认识一下自己
- 好久不来。。。看来的吧自己的博客统一一下