实验3 类与对象、构造与析构函数
3.1 实验目的和要求
1.掌握类的定义和使用。
2.掌握类的定义和对象的声明。
3.掌握具有不同访问属性的成员的访问方式。
4.深入体会构造函数、复制构造函数、析构函数的执行机制。 5.使用的VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、 成员函数的执行顺序。
3.2 所占学时数
本实验安排4个实验课时。
3.3 实验任务
3.3.1 任务一 (1)题目名称
设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类z型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等。其中\出生日期\定义为一个\日期\类内嵌子对象。用成员函数实现对人员信息 的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、带缺省形参值的成员 函数 、聚集。
(2)构思过程(可用文字、流程图、UML图等方式表达) 由于实验要求出生日期设为内嵌子对象,故要先写一个类
Date,构建出生日期的类,将出生日期设置为无返回值类型函数,其中包含参数不缺省的以及参数缺省的函数两种,然后,设计People类,在public中要写构造函数、拷贝构造函数、析构函数以及其他函数,构造函数应包含无参构造函数,有参构造函数,设性别设为内联函数。 (3)程序源码
#include
private:
int Year; int Month; int Day; public:
Date(){}; ~Date(){};
Date(int year,int month,int day) {
Year=year; Month=month; Day=day; }
Date(int month,int day) {
Year=1994; Month=month; Day=day; }
void show1() {
cout<<\出生日期:\年\月\日\
} };
class People {
private:
int number; int id; Date date; public:
People() {
number=id=0; }
People (int n,int i,Date d) {
number=n; id=i; date=d; }
~People () {
cout<<\ }
People(People&p) {
number=p.number; id=p.id; date=p.date;
cout<<\ }
inline void sex (int a ) {
if (a==1)
cout <<\性别:\女\ else
cout <<\性别:\男\
};
void show2() {
cout<<\编号是:\ cout<<\身份证号:\ date.show1() ; } };
int _tmain(int argc, _TCHAR* argv[]) {
Date d(1993,3,24);
People n1(001,123123123,d); n1.show2 (); n1.sex(1); Date d1(7,4);
People n2(002,123123123,d1); n2.show2 (); n2.sex(2); return 0; }
(4)运行结果(截图)
(5)心得体会
1、要编写一个类,必须在脑中构架一个类的基本框架,熟知类包含哪几部分,明确自己要写什么,条理清晰,正确编写,才会使类的编写过程简单且完整。
2、在写内联函数时要注意使用关键字inline,注意内联函数使用方式。

