实验八面向对象2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验八面向对象2
一、实验目的
1.进一步掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;
2.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;
3.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;
4.掌握友元函数的含义,友元函数和成员函数的区别。
二、实验要求
1.写出程序,并调试程序,要给出测试数据和实验结果。
2.整理上机步骤,总结经验和体会。
3.完成实验报告和上交程序。
三、实验内容
1.分析下面的程序,写出运行结果。
#include <iostream>
using namespace std;
class Date
{public:
Date(int,int,int);
Date(int,int);
Date(int);
Date();
void display();
private:
int month;
int day;
int year;
};
Date::Date(int m,int d,int y):month(m),day(d),year(y)
{ }
Date::Date(int m,int d):month(m),day(d)
{year=2005;}
Date::Date(int m):month(m)
{day=1;
year=2005;
}
Date::Date()
{month=1;
day=1;
year=2005;
}
void Date::display()
{cout<<month<<"/"<<day<<"/"<<year<<endl;}
int main()
{
Date d1(10,13,2005);
Date d2(12,30);
Date d3(10);
Date d4;
d1.display();
d2.display();
d3.display();
d4.display();
return 0;
}
2.编写设计一个People类。
该类的数据成员有年龄(age)、身高(height)、体重(weight)、
函数成员有进食(eat)、运动(sport)、睡眠(sleep)。
其中进食函数使体重加1,运动函数使身高加1,睡眠函数使年龄、身高、体重各加1。
要求所有数据成员为private,成员函数为public访问权限。
3.定义一个学生类,其中有3个数据成员学号、姓名、成绩,以及若干成员函数实现对学
生数据的赋值和输出。
要求(1)在主函数中定义一个对象数组,完成对数组中每个对象的赋值。
(2)定义一个函数找出成绩最高的学生的学号和姓名,该函数的形式参数为对象指针。
4.定义一个学生类,其中有3个私有数据成员学号、姓名、成绩,以及若干成员函数实现
对学生数据的赋值和输出。
要求(1)在主函数中定义一个对象数组,完成对数组中每个对象的赋值。
(2)定义一个友元函数找出成绩最高的学生的学号和姓名,该函数的形式参数为对象引用。