【习题】类与对象(2)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类和对象(2)
【实验目的】:
1.掌握类的构造函数和析构函数的使用方法。
2.掌握类的拷贝构造函数的使用方法。
【实验内容】:
1.读以下程序,为下列程序添加注释,并给出程序运行结果。并解释为什么得到这
样的结果。上机验证你的结果是否正确。
2.完成下列要求。
1)读以下程序,为下列程序添加注释,并给出程序运行结果。并解释为什么得
到这样的结果。上机验证你的结果是否正确。
2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内添加下述
语句:
cout << “Constructor is called.\n“;
写出程序的运行结果,并解释输出的结果。
3)按下列要求进行调试:
在主函数体内,添加下述语句:
Coordinate p4;
Coordinate p5(2);
调试程序时会出现什么错误?为什么?如何对已有的构造函数进行适当的修改?
4)经过以上2)和3)步的修改后,结合运行结果分析:创建不同的对象时会调
用不同的构造函数。
3.假使在程序中已经声明了类point,并建立了其对象p1和p4。请回答一下几个语
句有什么区别?
1)point p2, p3;建立point类的p2和p3
2)point p2 = p1;拷贝p2为p1
3)point p2(p1);同上
4)point p2;建立point类的p2
p2 = p1;将p1赋给p2
5)p4 = p1;将p1赋给p4
4.定义一个矩形(Rectangle)类,私有数据成员为矩形的长度(len)和宽度(wid),构造函
数置len和wid为0,有参构造函数置len和wid为对应形参的值,有能够放大长度和宽度一倍的拷贝构造函数,还包括求矩形周长、求矩形面积、矩形长度和宽度的共有成员函数,另外还有一个能够输出矩形长度、宽度、周长和面积等公有成员函数。
5.编写一个程序,实现按输入字符串相反的顺序,输出字符串。
如输入字符串:Merry Christmas and Happy New Year
则输出字符串:Year New Happy and Christmas Merry
6.编写一个程序,设计一个满足如下要求的CDate类,用数据进行调试,并输出结
果:
1)用日/月/年格式输出日期。
2)可进行日期加一天的操作。
3)设置日期。
【提示】:设计一个日期类CDate,包含m_Year(年)、m_Month(月)和m_Day(日)等3个私有数据成员,另外设计如下成员函数。
CDate():默认构造函数
CDate(int,int,int):重载构造函数。
CDate(CDate& date):拷贝构造函数。
Display():以指定的格式输出日期。
AddDay():返回当前日期加1后的日期。
SetDate(int,int,int):用指定参数设置当前日期。
~CDate():析构函数。
IsLeapYear():判断当前年是否为闰年。
其中,IsLeapYear()函数只在类内部使用,设置为私有成员函数,其它函数均设置为公有成员函数。
在main主函数中,定义CDate类的一个对象date,根据用户输入调用SetDate 成员函数设置当前日期,再调用Display成员函数输出当前日期,然后调用AddDay 成员函数将当前日期加1天,最后,调用Display成员函数输出加1天后的日期。
7.设计一个字符串类MyString,除具有一般的输入输出字符串的功能外,还要求具
有计算字符串的长度、两个字符串的连接、字符串的复制等功能。
8.编写学生信息管理程序。管理一组学生的信息(学生人数在运行时输入),能够按学
号查询学生的信息,也能够输出所有学生的信息。
【提示】:运用知识点对象指针,动态内存分配。
【实验体会】: