C++面向对象实验(五)
2016-05-17 23:13
357 查看
实验7 运算符重载
(1)定义日期类,重载 “++”和“--”运算符,使之能处理两个日期类对象自增和自减运算,并且自增和自减又分为前缀和后缀运算。(可继续完善。。。博主太懒。。。不想写。。)
(2)定义复数类,重载复数的加“+”和“*” 运算符,完成复数的加法与乘法。
(1)定义日期类,重载 “++”和“--”运算符,使之能处理两个日期类对象自增和自减运算,并且自增和自减又分为前缀和后缀运算。(可继续完善。。。博主太懒。。。不想写。。)
#include<iostream> #include<cstdlib> #include<cstdio> using namespace std; static int dys[]={31,28,31,30,31,30,31,31,30,31,30,31}; class date { int yr,mo,da; public: date(int y,int m,int d) { yr=y; mo=m; da=d; } date() {} void disp() { cout<<yr<<"年"<<mo<<"月"<<da<<"日"<<endl; } date operator + (int day) { date dt=*this; day+=dt.da; while(day>dys[dt.mo-1]) { day-=dys[dt.mo-1]; dt.mo++; if (dt.mo==13) { dt.mo==1; dt.yr++; } } dt.da=day; return dt; } date operator - (int day) { date dt=*this; day=dt.da-day; while (day<=0) { day+=dys[dt.mo-1]; dt.mo--; if (dt.mo==0) { dt.mo=12; dt.yr--; } } dt.da=day; return dt; } }; int main() { int y,m,d,a,b; cout<<"输入年月日:"; cin>>y>>m>>d; date d1(y,m,d),d2,d3; d1.disp(); cout<<"输入要加的天数(整数):"; cin>>a; d2=d1+a; d2.disp(); cout<<"输入要减的天数(整数):"; cin>>b; d3=d1-b; d3.disp(); return 0; }
(2)定义复数类,重载复数的加“+”和“*” 运算符,完成复数的加法与乘法。
#include<iostream> #include<cstdio> #include<cstdlib> using namespace std; class complex { private: float real; float image; public: complex(float r=0,float i=0) { real=r; image=i; } complex operator +(complex &obj) { complex c; c.real=real+obj.real; c.image=image+obj.image; return c; } complex operator *(complex &obj) { complex c; c.real=real*obj.real-image*obj.image; c.image=image*obj.real+obj.image*real; return c; } friend ostream & operator<<(ostream & ,complex &); }; ostream & operator<<(ostream &out ,complex &obj) { out<<obj.real<<"+"<<obj.image<<"i"<<endl; return out; } int main() { complex c1(3,4); complex c2(c1); complex c; //加 c=c1+c2; cout<<c<<endl; //乘 c=c1*c2; cout<<c<<endl; return 0; }
相关文章推荐
- C语言的指针、链表的原理和各类操作
- 2016/5/17 初识C++
- leetcode_c++:Search in Rotated Sorted Array(033)
- C++中getline函数用法(修正调试ok)
- 拓扑序列 C++实现
- 2013蓝桥决赛C/C++B组
- C++ Primer 第五版 练习 3.21,3.24
- 内存角度探寻C++面向对象 之 继承、多态
- 基于MySQL Connector/C++的数据库连接池
- C++ 运算符重载
- 单例模式-c++实现
- 库函数和系统调用
- 第8周 C语言及程序设计提高例程-31 编制自己的字符串函数
- c语言学生管理
- C语言游戏和代码
- 对Windows平台C程序内存分布研究及安全性分析
- 一起talk C栗子吧(第一百五十一回:C语言实例--socket通信地址)
- C++ string类型详解
- C++走向远洋——50(Time类中的运算符重载、一目,二目比较运算符、二目赋值运算符、二目加减法运算符)
- (未总结完成)C++中的对象放在哪里?