第16章 造物者与毁灭者——对象生灭
上一章介绍了如何编写一个简单的类,了解了公有和私有的概念,掌握了如何编写一个成员函数。但是靠这些,还远不能让编写的“类”符合需求。本章将介绍在创建一个对象和毁灭一个对象时,发生的一些事情。
本章的主要知识点有:
- 构造函数的概念
- 析构函数的概念
- 构造函数和析构函数的执行顺序
- 拷贝构造函数的概念及必要性
16.1 麻烦的初始化
在声明一个局部变量时,必须对它进行初始化,否则它的数据是一个不确定的值。同样,在声明一个对象时,也应该对它进行初始化。不过一个对象可能有许许多多的成员数据,对对象的初始化就意味着对它的成员数据进行初始化。变量的初始化只需要一条赋值语句就能完成,而对象的初始化可能要许许多多的赋值语句才能完成。因此,通常会把这些语句写在一个函数中。例如,我们为链表结点类编写了一个名为init的初始化函数。
class Node //定义一个链表结点类
{
public:
……
void init(int i,char c);
……
private:
int idata;
char cdata;
Node *prior;
Node *next;
};
void Node::init(int i,char c)
{
idata