实验5 类和对象(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5 类和对象(二)
实验目的:
1.进一步理解类和对象的概念;
2.进一步理解类的成员的访问控制的含义,公有和私有成员的区别;
3.掌握构造函数和析构函数的含义与作用、定义方式和实现;
4.能够根据给定的要求定义类并实现类的成员函数;
5.了解C++面向对象程序设计的基本思想、基本方法和基本步骤;
6.掌握MS Visual C++6.0调试C++程序的基本方法、基本步骤。
实验内容:
一、基础题:
1、输入下列程序,按要求进行实验,并记录实验的结果。
#include
using namespace std;
class Coordinate
{
public:
Coordinate(int x1, int y1){x=x1; y=y1;}
Coordinate(Coordinate &p);
~Coordinate(){cout<<"Destructor is called."< int getx(){return x;} int gety(){return y;} private: int x, y; }; Coordinate::Coordinate(Coordinate &p){ x=p.x; y=p.y; cout<<"Copy initianization constructor is called."< } int main(){ Coordinate p1(3,4); Coordinate p2(p1); Coordinate p3=p2; cout<<"p3=("< return 0; } (1)记录程序的运行结果 (2)将Coordinate类中带有两个参数的构造函数进行修改,在函数体内增加如下语句: cout<<”Constructor is called.”< 重新记录程序的运行结果,并解释输出结果。 (3)按下列要求进行测试。 在主函数体内,添加如下语句: Coordinate p4; Coordinate p5(2); 测试程序会出现什么错误?为什么?如何对已有的构造函数进行适当的修改? (4)结合第(2)和第(3)步的修改和运行结果:分析创建不同的对象时如何调用适当的构造函数? 2、根据注释语句的提示实现类Date的成员函数,并将完整的程序编译、连接成功以保证程序能够正确运行。#include class Date{ public: void printDate(); //显示日期 void setDay(int); //设置日的值 void setMonth(int); //设置月的值 void setYear(int); //设置年的值 private: int day, month, year; }; int main(){ Date testDay; testDay.setDay(24); testDay.setMonth(10); testDay.setYear(2012); testDay.printDate(); return 0; }; 3、下面是一个计算器类的定义,请完成该类的成员函数的实现,并设计一个主函数使用该类和相关成员函数以测试该类设计的正确性。 #include using namespace std; class coutner { public: counter(int number); //构造函数 void increment(); //给value原值加2 void decrement(); //给value原值减2 void setvalue(int); //设置计数器值 int getvalue(); //取得计数器值 void print(); //显示计数 private: int value; //数据成员 }; int main(){ ... //定义counter类的几个对象并调用有关成员函数 return 0; } 二、提高题: 4、定义一个类ClsName,要求该类设计如下: (1)该类有两个整型数据成员x和y; (2)为该类重载三个不同的构造函数:分别为无参数、带一个参数和带两个参数的构造函数,要求在构造函数中输出必要的信息以示区别; (3)设计2个成员函数用来读取数据成员x和y; (4)设计2个成员函数用来设置数据成员x和y; (5)设计1个成员函数用来在屏幕上打印输出数据成员x和y; (6)在main()函数中用三个不同的构造函数创建3个对象,并使用所有的成员函数对这些对象进行必要的操作。 5、创建一个名为Complex的类,进行复数的算术运算。编写一个测试程序来测试该类。 三、选做题: 6、提供一个构造函数,该函数能够从函数time(在C标准库的头文件 始化Time类的一个对象。 实验要求: 1.实验前做好预习,并写出预习报告。 2.实验期间禁止做与实验无关的项目、以及浏览网页、打游戏等。 3.认真完成并按时提交实验报告。 实验报告要求: 1.写清操作步骤。 2.写出每步操作的结果,或你观察到的现象。 3.写出实验中的问题。