第三章类和构造函数.pptVIP

  • 20
  • 0
  • 约3.47万字
  • 约 84页
  • 2019-02-18 发布于安徽
  • 举报
* 一个类可能在构造函数里分配资源,这些资源需要在对象不复存在以前被释放。 例如,如果构造函数打开了一个文件,文件就需要被关闭。或者,如果构造函数从堆中分配了内存,这块内存在对象消失之前必须被释放。析构函数允许类自动完成这些清理工作,不必调用其他成员函救。 析构函数也是特殊的类成员函数,它没有返回类型,没有参数,不能随意调用,也没有重载。只是在类对象生命期结束的时候.由系统自动调用。在后面两节将会看到,构造函数不同于析构函数,却可以有参数,可以重载。 作为一个类,可能有许多对象,每当对象生命期结束时,都要调用析构函数,每个对象一次。这跟构造函数形成了鲜明的对立,所以析构函数名,就在构造函数名前加上一个逻辑非运算行“~”,表示“逆构造函数”。 * XYZ类的构造函数中分配了一段堆内存给作为指针的name数据成员。 一旦对象创建,该对象就在对象空间之外拥有了一段堆内存资源。 对应地,当对象在撤消的时候,首先必须归还这~堆内存资源。 当你进入图书馆阅览室借书阅览时, 你就成了一个阅览室的阅览人(对象),借什么书是由一进去就完成的(构造)。 当你要撤离阅览室(撤消对象)时,你必须先归还图书(析构)才能顺当地离去。 析构函数以调用构造函数相反的顺序被调用。 * (1)C++规定,每个类必须有一个构造函数,没有构造函数,就不能创建任何对象。 (2)若未提供一个类的构造函数(一个都未提供

文档评论(0)

1亿VIP精品文档

相关文档