该【构造函数与析构函数 】是由【sanyuedoc2018】上传分享,文档一共【64】页,该文档可以免费在线阅读,需要了解更多关于【构造函数与析构函数 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。1
第11章 构造函数与析构函数
单击此处添加副标题
教学主要内容
类的构造函数
析构函数
静态成员
友元
重点与难点
类与构造函数
友元
汇报人姓名
教学目标
第11章 构造函数与析构函数
熟练掌握使用构造函数在创建对象时对其进行初始化
01
掌握使用析构函数在释放对象时清理现场
02
会使用友元访问类中的成员
03
2
第11章 构造函数与析构函数
1 构造函数与析构函数概述
2 拷贝构造函数
3 对象数组
4 this指针
5 静态成员
6 友元
01
03
02
04
05
06
3
构造函数和析构函数
构造函数
当建立一个对象时,对象的状态(数据成员的取值)是不确定的。常常需要初始化。C++中有一个称为构造函数的特殊成员函数,可自动进行对象的初始化。相对于构造函数,一个称为析构函数的成员函数在对象撤消时自动执行清理任务。
4
构造函数
构造函数是一种特殊的成员函数,它的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态,给各成员数据赋初值。构造函数在对象创建时由系统自动调用。
构造函数除具有一般成员函数的特性之外,还具有一些特殊的性质:
(1)构造函数的名字必须与类名相同。
(2)构造函数可以有任意类型的参数,但不能指定返回类型。它有隐含的返回值,该值由系统内部使用。
(3)构造函数允许为内联函数、重载函数、带缺省形参值的函数。
(4)构造函数被声明为公有函数,但它不能像其他成员函数那样被显式地调用,它是在定义对象的同时被系统调用的。
5
构造函数的定义
在类定义时没有定义任何构造函数时,编译器会自动为这个类生成一个不带参数的缺省构造函数,其格式如下:
<类名>::<缺省构造函数名>()
{…}
在程序中定义一个对象而没有进行初始化时,则编译器便按缺省构造函数来初始化该对象。只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。
6
构造函数的应用示例
【实例11-1-1】定义一个时钟类(包括:时、分、秒)及该类的对象,分别使用普通成员函数和构造函数初始化数据成员。
7
构造函数的应用示例
#include <iostream>
using namespace std;
class Time
{public:
Time( ) //定义构造成员函数,函数名与类名相同
{hour=0; //利用构造函数对对象中的数据成员赋初值
minute=0;
sec=0;}
void set_time( ); //函数声明
void show_time( ); //函数声明
private:
int hour; //私有数据成员
int minute;
int sec;};
8
构造函数的应用示例
void Time::set_time( ) //定义成员函数,向数据成员赋值
{cin>>hour;
cin>>minute;
cin>>sec;
}
void Time::show_time( ) //定义成员函数,输出数据成员的值
{ cout<<hour<<":"<<minute<<":"<<sec<<endl;}
void main( )
{
Time t1; //建立对象t1,( )
( ); //对t1的数据成员赋值
( ); //显示t1的数据成员的值
Time t2; //建立对象t2,( )
( ); //显示t2的数据成员的值
}
9
带参的构造函数的应用示例
【实例11-1-2】定义一个描述学生的类(包括:学号、姓名、年龄和班级号)及该类的对象,使用构造函数初始化数据成员。
10
构造函数与析构函数 来自淘豆网m.daumloan.com转载请标明出处.