人民邮电出版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 162函数重载 下面将函数的重载问题分为一般函数重载 构造函数重载和成员函数重载三个方面来谈。 1621一般函数的重载
人民邮电出版社 16.2 函数重载 下面将函数的重载问题分为一般函数重载, 构造函数重载和成员函数重载三个方面来谈。 16.2.1 一般函数的重载