实验五运算符重载.doc

上传人:桔**** 文档编号:549564194 上传时间:2022-09-22 格式:DOC 页数:4 大小:39.01KB
返回 下载 相关 举报
实验五运算符重载.doc_第1页
第1页 / 共4页
实验五运算符重载.doc_第2页
第2页 / 共4页
实验五运算符重载.doc_第3页
第3页 / 共4页
实验五运算符重载.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验五运算符重载.doc》由会员分享,可在线阅读,更多相关《实验五运算符重载.doc(4页珍藏版)》请在金锄头文库上搜索。

1、实验六 运算符重载(2学时)一、实验目的1掌握运算符重载的规则。2掌握用成员函数、友元函数重载运算符的特点。3掌握几种常用的运算符重载的方法。二、实验内容1阅读下面的程序,写出程序运行的结果。(1)#includeclass ABCint a,b,c;public:ABC(int x,int y,int z):a(x),b(y),c(z)friend ostream &operator(ostream &out,ABC& f);ostream &operator(ostream &out,ABC& f)outa=f.aendlb=f.bendlc=f.cendl;return out;int

2、main()ABC obj(10,20,30);coutobj; return 0;(2) 写出运行结果。将成员函数重载形式改为友元函数重载形式,友元函数重载形式改为成员函数重载形式#includeclass Numberint n;public:Number(int x):n(x)Number& operator+() +n; return *this;Number& operator+(int)n+;return *this;friend Number &operator-(Number &o);friend Number &operator-(Number o,int); void di

3、splay()coutThis Number is: nendl;Number &operator-(Number &o)-o.n;return o;Number &operator-(Number o,int)o.n-;return o;int main()Number N1(10);+ + +N1;N1.display();N1+;N1.display();-N1;N1.display();N1- - -;N1.display(); return 0;2设计并实现一个日期类Date,要求:(1)可以建立具有指定日期(年、月、日)的Date对象,默认日期是2009.1.1。(2)可以从输出流

4、输出一个格式为“年-月-日”的日期,其中年是四位数据,月、日可以是一位也可以是两位数据。(3)可以动态地设置年、月、日。(4)可以用运算符= =、!=、对两个日期进行比较(定义其中之一即可)。(5)可以用运算符+、-、+=、-=等完成天数的加减一天或若干天的操作(定义其中之一即可)。(6)Date类必须能够正确表达日期,不会出现类似于13月,32日一类的情况。Date类还必须处理闰年的问题,闰年包括:所有能被400整除的年份,以及能被4整除同时又不能被100整除的年份。(选做)(7)写出主函数对该类进行测试。下面两题选做一题3下面是一个数组类CArray的定义。要求:(1)在此基础上增加pri

5、nt()成员函数打印数组,(2)重载“=”、“+”、“-” 运算符使之能对该数组类对象进行赋值、加减运算。(3)写出主函数对该类进行测试。class CArrayprivate: int* p_arr; int size;public: CArray(); /缺省构造函数 CArray(int* p_a,int s); /构造函数 CArray(const CArray &r_other);/复制构造函数 CArray();/析构函数 int operator(int pos) const; /访问数组元素值的下标运算符重载函数 int& operator(int pos); /设置数组元素值

6、的下标运算符重载函数 Carray &operator=(const Carray &other)/赋值运算符“=”重载函数 Carray &operator+(const Carray &other) /加运算符“+”重载函数 Carray &operator-(const Carray &other) /减运算符“-”重载函数 void print() const;CArray: CArray() p_arr=NULL; size=0; CArray: CArray(int* p_a,int s) if(s0) size=s; p_arr=new intsize; for(int i=0;

7、isize;i+) p_arri=p_ai; Else p_arr=NULL; size=0; CArray:CArray(const CArray &r_other) size=r_other.size; if(size) p_arr=new intsize; for(int i=0;i=size) return p_arrsize-1; if(pos=size) return p_arrsize-1; if(pos0) return p_arr0; return p_arrpos;4下面是一个自定义字符串类的声明。请写出该类所有成员函数的类外定义代码。class stringprivate

8、:unsigned buflen;char * buffer;public:string();/构造函数string(unsigned);string(char);string(const char*);string(const string &);/复制构造函数string();/析构函数/重载赋值运算符string& operator=(const string &right); string& operator+=(const string &right); char *operator+=(const char *right);friend string operator+(const

9、 string & left,const string & right); /字符串连接string operator()(unsigned start,unsigned len); /取子串unsigned length()const; /求字符串长度char & operator(unsigned index)const; /访问单个字符int compare(const string &)const; /字符串比较operator const char *()const; /到普通c字符串的转换friend ostream & operator(ostream &,string &);/字符串的输出;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号