实验7 构造函数和析构函数

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验7 构造函数和析构函数

一、实验目的:

●掌握C++中类和对象的使用方法;

●熟悉构造函数和析构函数的概念;

●掌握构造函数和析构函数的定义方法;

●熟悉拷贝构造函数的概念和定义方法。

二、实验内容

1、请按要求运行下列程序,并回答相关问题,从中体会构造函数的作用:

#include

using namespace std;

class Time

{

private:

int hour, minute, second;

public:

void disp();

};

void Time::disp()

{

cout<

}

int main()

{

Time time;

time.disp();

}

问题:

(1)查看程序的运行结果,你能发现其中的问题吗?

(2)给类增加一个无参数的构造函数,再次运行程序。程序结果有无变化?从中你能体会构造函数具有什么作用?

(3)在类中增加如下函数定义,在运行程序观察运行结果有什么变化?

Time::Time() //定义构造函数

{

hour=0;

minute=0;

second=0;

}

(4)问题:请用参数列表初始化数据成员的方式改写构造函数,查看程序运行结果有无不同?

2、阅读、运行下列程序,并回答相关问题,进一步熟悉构造函数、析构函数的定义、调用,清楚对象构造、析构的顺序。

#include

using namespace std;

class Test

{

private:

int x;

public:

Test()

{

cout<<"对象地址: "<

x=0;

}

~Test()

{

cout<<"对象地址: "<

}

void print()

{

cout<<"数据成员: x="<

}

};

int main()

{

Test obj1,obj2; //创建对象时,自动调用构造函数

obj1.print();

obj2.print();

}

问题:

(1)析构函数有什么作用?在书写时,与构造函数有什么相同点和不同点?(2构造函数、析构函数的调用顺序是怎么样的?

3、定义一个Date类满足如下要求:

数据成员:年、月、日

成员函数:

1、构造函数,Date(int y=2012, int m=1 , int d=1);

2、用下面的格式输出日期:日/月/年void Display();

3、可运行在日期上加一天操作void AddOneDay();

4、设置日期void SetDay(int y,int m,int d);

5、析构函数,在其中输出“析构函数”。

书写主函数,定义对象,调用AddOneDay()函数,调用输出函数Display(),输出日期。接着,调用设置日期的函数,设置为2012年2月28日,再调用AddOneDay()函数,调用输出函数Display(),输出日期。

4、建立一个Stock类,含有股票代码和股票现价两个数据成员。在主函数中,用new自动为Stock类的对象分配内存,并将股票“600001”,现价8.89存

入内存的相应域中,显示执行结果。

相关文档
最新文档