Chinaunix首页 | 论坛 | 博客
  • 博客访问: 155323
  • 博文数量: 44
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 407
  • 用 户 组: 普通用户
  • 注册时间: 2015-11-10 13:28
个人简介

仰望星空

文章分类
文章存档

2016年(22)

2015年(22)

我的朋友

分类: C/C++

2016-03-28 21:39:27

一、单目运算符重载
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. class CPoint
  5. {
  6. private:
  7.     int x, y;
  8. public:
  9.     CPoint(int _x=0, int _y=0):x(_x),y(_y){}
  10.     void display(){cout<<x<<" "<<y<<endl;}
  11.     CPoint operator ++ (int);
  12. };
  13.  
  14. CPoint CPoint::operator ++ (int)
  15. {
  16.     return CPoint(x++, y++);
  17. }
  18.  
  19. int main(void)
  20. {
  21.     CPoint a,c(1,1);
  22.     a=c++;
  23.     a.display();
  24.     c.display();
  25.     return 0;
  26. }
二、友元函数的重载
  1. #include <iostream.h>

  2. class complex
  3. {
  4. private:
  5.     double x, y;
  6.     
  7. public:
  8.     complex(double xx = 0, double yy = 0){x = xx; y = yy;}

  9.     double getx(){return x;}
  10.     double gety(){return y;}

  11.     void display()
  12.     {
  13.         cout<<"x = "<<x<<endl;
  14.         cout<<"y = "<<y<<endl;
  15.     }
  16.     friend complex operator * (complex &c1,complex &c2); //定义友元函数重载
  17. };

  18. complex operator * (complex &c1, complex &c2) //定义重载算术运算符

  19. {
  20.     complex c;
  21.     c.x = c2.x * c1.x;
  22.     c.y = c2.y * c1.y;
  23.     return c;
  24. }

  25. void main()
  26. {
  27.     complex c1(3,4),c2(4,-5),c3;
  28.     c3= c1*c2; //这个就是对运算符“*”的重载

  29.     c1.display();

  30.     c2.display();

阅读(1439) | 评论(0) | 转发(0) |
0

上一篇:15、文件的复制

下一篇:19、虚函数

给主人留下些什么吧!~~