人民邮电出版3 第十六章类的工具
人民邮电出版社 第十六章 类的工具
人民邮电出版3 16.1构造函数和析构函数 162函数重载 163运算符重载 164对象的动态存储管理
人民邮电出版社 16.1 构造函数和析构函数 16.2 函数重载 16.3 运算符重载 16.4 对象的动态存储管理
人民邮电出版 161构造函数和析构函数 当我们建立了一个类并说明了这个类的对象 后,对象的初始状态,即对象数据成员的值,是 不确定的 构造函数属于类的成员函数。构造函数的函 Y3数名与类名同。它不需要函数类型说明,它也没 有返回值。 如果在类定义的成员函数中,没有说明构造 函数,系统将提供一个构造函数。 析构函数( destructor)是系统提供的另一个特 殊成员函数,它的作用与构造函数相反,是消除 一个对象,释放分配给对象的内存空间。析构函 数的函数名是在类名前加一个“~”号
人民邮电出版社 16.1 构造函数和析构函数 当我们建立了一个类并说明了这个类的对象 后,对象的初始状态,即对象数据成员的值,是 不确定的。 构造函数属于类的成员函数。构造函数的函 数名与类名同。它不需要函数类型说明,它也没 有返回值。 如果在类定义的成员函数中,没有说明构造 函数,系统将提供一个构造函数。 析构函数(destructor)是系统提供的另一个特 殊成员函数,它的作用与构造函数相反,是消除 一个对象,释放分配给对象的内存空间。析构函 数的函数名是在类名前加一个“~”号
人民邮电出版 1611不带参数的构造函数 不带参数的构造函数也称为缺省构造函数。如 果程序中没有说明构造函数,编译程序将提供一个 缺省构造函数,它不做任何操作,就如同说明了一 个不带参数而且函数体为空的构造函数 如果需要缺省构造函数,必须用户自己定义。 例如,我们定义了类 counter,函数 counter(void) 便是类 counter的缺省构造函数。 调用构造函数的一般形式为: 类名对象名;
人民邮电出版社 16.1.1 不带参数的构造函数 不带参数的构造函数也称为缺省构造函数。如 果程序中没有说明构造函数,编译程序将提供一个 缺省构造函数,它不做任何操作,就如同说明了一 个不带参数而且函数体为空的构造函数。 如果需要缺省构造函数,必须用户自己定义。 例如,我们定义了类counter,函数 counter(void); 便是类counter的缺省构造函数。 调用构造函数的一般形式为: 类名 对象名;
人民邮电出版3 16.12析构函数 个对象进入其代码块时才建立,离开它的 代码块时,就被撤消。在很多情况下,一个对象 被撤消时,也要执行一些操作,如释放它所占用 的内存单元。析构函数就是用来自动隐式地作 这项工作的
人民邮电出版社 16.1.2 析构函数 一个对象进入其代码块时才建立,离开它的 代码块时,就被撤消。在很多情况下,一个对象 被撤消时,也要执行一些操作,如释放它所占用 的内存单元。析构函数就是用来自动(隐式地)作 这项工作的
人民邮电出版3 1613带参数的构造函数 通常在创立一个对象时,需要对它的各数据元素 初始化,即给它们赋予特定的值。使用构造函数就可 以在对象创立时对对象进行初始化。这样的初始化工 Y作,是通过传递给构造函数的参数来实现的 通过调用带参数的构造函数进行对象初始化的一 般形式为: 类名对象名(初始化参数);
人民邮电出版社 16.1.3 带参数的构造函数 通常在创立一个对象时,需要对它的各数据元素 初始化,即给它们赋予特定的值。使用构造函数就可 以在对象创立时对对象进行初始化。这样的初始化工 作,是通过传递给构造函数的参数来实现的。 通过调用带参数的构造函数进行对象初始化的一 般形式为: 类名 对象名(初始化参数);
人民邮电出版3 1614构造函数参数的缺省值 构造函数的参数可以有缺省值
人民邮电出版社 16.1.4 构造函数参数的缺省值 构造函数的参数可以有缺省值
人民邮电出版3 162函数重载 下面将函数的重载问题分为一般函数重载 构造函数重载和成员函数重载三个方面来谈。 1621一般函数的重载
人民邮电出版社 16.2 函数重载 下面将函数的重载问题分为一般函数重载, 构造函数重载和成员函数重载三个方面来谈。 16.2.1 一般函数的重载
人民邮电出版3 1622构造函数重载 构造函数是类的一个特殊的成员函数,但 它也同样可以重载。这意味着,一个类可以定 义若干个构造函数。当重载某个类的构造函数 时,只需说明它可能采用的各种参数形式,定 义出与这些参数形式相应的操作
人民邮电出版社 16.2.2 构造函数重载 构造函数是类的一个特殊的成员函数,但 它也同样可以重载。这意味着,一个类可以定 义若干个构造函数。当重载某个类的构造函数 时,只需说明它可能采用的各种参数形式,定 义出与这些参数形式相应的操作
人民邮电出版3 1623重载类成员函数 与重载构造函数的情况一样,类的成员函数 也可以进行重载。系统会根据函数参数类型的不 同,选择相应的成员函数进行运算
人民邮电出版社 16.2.3 重载类成员函数 与重载构造函数的情况一样,类的成员函数 也可以进行重载。系统会根据函数参数类型的不 同,选择相应的成员函数进行运算