实验三 构造函数与析构函数

原创 2018年04月16日 00:02:20

实验三、构造函数与析构函数

一、实验目的和要求

1、熟悉类的定义格式和类中成员的访问权限;

2、构造函数与析构函数的调用时机与顺序。;

3、掌握对象的定义以及对象的初始化的时机与方法;

二、实验内容

1、下面程序sy3_1.cpp中用ERROR表明的语句有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。


运行结果显示的是错误:

改正后程序:


可以正确运行:


2、调试下列程序。


在该程序中,将TPoint类的带有两个参数的构造函数进行修改,在函数体内增添下述语句:

        cout<<"Constructor is called.\n";

(1)写出程序的输出结果,并解释输出结果。


(2)按下列要求进行调试:

        在主函数体内,添加下列说明语句:

        TPoint P4,P5(2);

调试程序会出现什么现象?为什么?如何解决?(提示:对已有的构造函数进行适当修改)结合运行结果分析如何使用不同的构造函数创建不同的对象。

3、对教材中Li3_11.cpp的主函数做如下修改:

(1)将Heapclass *pa1,*pa3改为Heapclass *pa1,*pa2,*pa3;

(2)在语句pa2=new Heapclass;后增加语句pa3=new Heapclass(5);

(3)在语句if(!pa1||!pa2)改为if(!pa1||!pa2||!pa3);

(4)在语句delete pa2;后增加语句delete pa3;

写出程序的输出结果,并解释输出结果。


运行结果图:


4、请定义一个矩形类(Rectangle),私有数据成员为矩形的长度(len)和宽带(wid),无参构造函数置len和wid为0,有参构造函数置len和wid为对应形参的值,另外还包括求矩形周长、求矩形面积、取矩形长度和宽度、修改矩形长度和宽度为对应形参的值、输出矩形尺寸等公有成员函数。要求输出矩形尺寸的格式为“length:长度,width:宽度”。(sy3_3.cpp)



运行结果图:


三、分析与讨论

1、类中私有成员的访问权限。

2、构造函数与析构函数的调用顺序。

3、何时进行对象初始化?如何进行?(提示:注意分一般对象与堆对象讨论)

四、实验小结

         在本次的实验中,通过实验熟悉了类的定义格式和类中成员的访问权限,还知道了构造函数和析构函数的调用时机与顺序以及知道了对象的定义和对象的初始化的时机与方法。自我我感觉自己收获还是很大的,希望在以后的学习中可以学习更多的知识。


SEM实战教程(三)

SEM实战培训,主要针对零基础到高手的实战操作和数据分析等的系列的培训课程,由SEM实战网老卢培训和服务,以实战为基础,解决竞价中所遇到的问题就是最大的实战,故言SEM实战培训。
  • 2017年03月10日 16:45

实验3,构造函数与析构函数

实验3,构造函数与析构函数一、实验目的和要求1、熟悉类的定义格式和类中成员的访问权限。2、构造函数与析构函数的调用时机与顺序。3、掌握对象的定义以及对象的初始化的时机与方法。二、实验内容1、下面程序s...
  • qq_41797651
  • qq_41797651
  • 2018-04-14 23:32:01
  • 15

C++实验报告(构造函数与析构函数的编程)

  • 2017年11月11日 19:26
  • 119KB
  • 下载

实验_构造函数与析构函数.doc

  • 2009年05月02日 21:21
  • 36KB
  • 下载

实验三构造与析构函数

实验三  构造函数和析构函数 班级:         学号:            姓名:          成绩:     一. 实验目的 1.理解构造函数和析构函数作用; 2.掌握各种类型...
  • benben0729
  • benben0729
  • 2015-05-10 08:52:35
  • 231

C++类构造函数,拷贝构造函数,赋值函数,析构函数几点注意

一个空类时,编译器会默认生成构造函数,拷贝构造函数,赋值函数,析构函数一个类如果重写拷贝构造函数,那么必须自定义一个构造函数。如下代码会编译出错:error C2512: “B”: 没有合适的默认构造...
  • xiejianjun417
  • xiejianjun417
  • 2016-07-07 16:27:17
  • 1331

c++继承里面的构造函数和析构函数

// ConsoleApplication9.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include class B...
  • zhouguangfei0717
  • zhouguangfei0717
  • 2017-10-24 19:55:28
  • 75

C++构造函数和析构函数的总结

C++是面向对象的编程语言,在定义类的时候,离不开构造和析构函数。类中同类同名的成员函数称为构造函数,主函数中初始化一个对象时,如果有传入数据,其实是传入到构造函数的形参中。...
  • ladybai
  • ladybai
  • 2016-03-10 14:51:41
  • 4455

C++:类的构造函数和析构函数

C++:类的构造函数和析构函数标签(空格分隔): c++ 作者:陈小默C类的构造函数和析构函数 构造函数 声明和定义 引用参数与构造函数 使用构造函数定义对象 默认构造函数 析构函数 声明和定义 析...
  • qq_32583189
  • qq_32583189
  • 2016-09-02 17:05:56
  • 7008

C++类 实例 数据成员 成员函数 构造函数 析构函数

class student {        //不写权限默认为私有的 private        int   id;        char name[16];        int ...
  • qq_28710983
  • qq_28710983
  • 2017-12-05 22:18:38
  • 56
收藏助手
不良信息举报
您举报文章:实验三 构造函数与析构函数
举报原因:
原因补充:

(最多只允许输入30个字)