欢迎来到天天文库
浏览记录
ID:40648890
大小:34.50 KB
页数:5页
时间:2019-08-05
《面向对象的妥协与运算符重载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四、面向对象的妥协与运算符重载一、实验目的1.掌握友元的概念、友元函数的定义与使用方法。2.掌握静态数据成员与静态成员函数的定义与使用方法。3.掌握运算符重载的规则。4.掌握几种常用的运算符重载的方法。二、实验内容1.设计并测试点类Point,其数据成员是直角坐标系的点坐标,友元函数distance用来计算两点间的距离。2.设计一个书类Book,能够保存书名、定价,所有书的本数和总价。3.阅读下面的程序,分析程序运行的结果。程序中是否存在不合理的地方?如果存在,请改正。#includeclassN
2、umber{intn;public:Number(intx):n(x){}Number&operator++(){++n;return*this;}Number&operator++(int){n++;return*this;}friendNumber&operator--(Number&o);friendNumber&operator--(Numbero,int);voiddisplay(){cout<<"ThisNumberis:"<3、n;returno;}Number&operator--(Numbero,int){o.n--;returno;}intmain(){NumberN1(10);++++++N1;N1.display();N1++;N1.display();--N1;N1.display();N1------;N1.display();return0;}4.设计并实现一个日期类Date,要求:(1)可以建立具有指定日期(年、月、日)的Date对象,默认日期是2011.1.1。(2)可以输出一个格式为“年-月-日”的日期,其中年是四位数据,月、4、日可以是一位也可以是两位数据。(3)可以动态地设置年、月、日。(4)可以用运算符==、!=、<和>对两个日期进行比较。(5)可以用运算符++、--、+=、-=等完成天数的加减一天或若干天的操作(6)Date类必须能够正确表达日期,不会出现类似于13月,32日一类的情况。Date类还必须处理闰年的问题,闰年包括:所有能被400整除的年份,以及能被4整除同时又不能被100整除的年份。(7)写出主函数对该类进行测试。1#include#includeclasspoint{private:do5、ublex,y;public:point(doublea,doubleb){x=a,y=b;cout<<"("<6、ostream>#includeusingnamespacestd;classBook{public:voidset(stringa,floatb,intd){name=a;price=b;c=d;count+=c;}voidshow(){cout<<"书名:"<7、l<classNumber{i8、ntn;public:Number(intx):n(x){}Number&operator++(){++n;return*this;}Number&operator++(int){n++;return*this;}friendNumber&operator--(Number&o);frie
3、n;returno;}Number&operator--(Numbero,int){o.n--;returno;}intmain(){NumberN1(10);++++++N1;N1.display();N1++;N1.display();--N1;N1.display();N1------;N1.display();return0;}4.设计并实现一个日期类Date,要求:(1)可以建立具有指定日期(年、月、日)的Date对象,默认日期是2011.1.1。(2)可以输出一个格式为“年-月-日”的日期,其中年是四位数据,月、
4、日可以是一位也可以是两位数据。(3)可以动态地设置年、月、日。(4)可以用运算符==、!=、<和>对两个日期进行比较。(5)可以用运算符++、--、+=、-=等完成天数的加减一天或若干天的操作(6)Date类必须能够正确表达日期,不会出现类似于13月,32日一类的情况。Date类还必须处理闰年的问题,闰年包括:所有能被400整除的年份,以及能被4整除同时又不能被100整除的年份。(7)写出主函数对该类进行测试。1#include#includeclasspoint{private:do
5、ublex,y;public:point(doublea,doubleb){x=a,y=b;cout<<"("<6、ostream>#includeusingnamespacestd;classBook{public:voidset(stringa,floatb,intd){name=a;price=b;c=d;count+=c;}voidshow(){cout<<"书名:"<7、l<classNumber{i8、ntn;public:Number(intx):n(x){}Number&operator++(){++n;return*this;}Number&operator++(int){n++;return*this;}friendNumber&operator--(Number&o);frie
6、ostream>#includeusingnamespacestd;classBook{public:voidset(stringa,floatb,intd){name=a;price=b;c=d;count+=c;}voidshow(){cout<<"书名:"<7、l<classNumber{i8、ntn;public:Number(intx):n(x){}Number&operator++(){++n;return*this;}Number&operator++(int){n++;return*this;}friendNumber&operator--(Number&o);frie
7、l<classNumber{i
8、ntn;public:Number(intx):n(x){}Number&operator++(){++n;return*this;}Number&operator++(int){n++;return*this;}friendNumber&operator--(Number&o);frie
此文档下载收益归作者所有