工学四川大学c构造函数和析构函数.pptxVIP

  • 1
  • 0
  • 约8.86千字
  • 约 50页
  • 2019-11-28 发布于上海
  • 举报
;§11.1 类与对象; C++ 中构造函数和析构函数是类的特殊成员函数。 构造函数用于创建类对象,初始化其成员。 析构函数用于撤销类对象。 本章介绍构造函数、析构函数、缺省构造函数、拷贝构造函数等相关内容。; 一个类描述一类事物,描述这些事物所应具有的属性。 对象是类的一个实例,它具有确定的属性。 如学生类与某学生对象。 类的名字只有一个,但由该类创建的对象可以任意多个。 属于不同类的对象可以在不同时刻、不同环境分别创建或撤销。 与定义变量相同,可定义具有不同存储属性的各类对象。定义对象时,C++ 编译器为其分配存储空间(如果需要)。;;;;;; 另一种方法是建立对象的同时,自动调用构造函数,省去上述麻烦,使定义类对象时包含了为对象分配存储空间和初始化的双重任务。这种实现机制较为理想。 由于类的唯一性和对象的多样性,因此C++ 规定构造函数与类同名。其特点是: Constructor is a function with the explicit purpose of initializing object. Because such a function constructs values of a given type, it is called a constructor. A constructor is recognized by having the same name as the class itself. When a class has a constructor, all objects of that class will be initialized by a constructor call.;构造函数的使用方式有:构造函数在类体内定义,例如: #include iostream.h class Desk { public: Desk() { weight=10; high=5; width=5; length=5; } protected: int weight; int high;;;;;;;;;;; The constructor is used to initialize objects, and destructor is used to clean up objects and release resources before they are become unusable. 例如在下面情况下需要使用析构函数:一个对象当结束其生命期时,比如在函数体内定义的对象,当该函数调用结束时,局部对象被释放。 构造函数打开一个文件,使用完文件时,需要关闭文件。 从堆中分配了动态内存区,在对象消失之前必须释放。; 析构函数的特点: 无返回类型; 无参数; 不能随意调用; 不能重载。 而构造函数可以有参数,也可以重载。 析构函数与构造函数的功能相对应,所以析构函数名是构造函数名前加一个逻辑反运算符“~”;例如:下面程序段在class Xyz 类中定义了一个构造函数和一个析构函数。 class Xyz { public: Xyz() //constructor definition { name=new char[20]; } ~Xyz() //destructor definition { delete name; } protected: char *name; }; 该类定义的构造函数在对象之外分配一段堆内存空间,撤销时,由析构函数收回堆内存。 注意,析构函数以调用构造函数相反的顺序被调用。 例如:在ch11-5.cpp 程序中为每个类增加析构函数则有: //…ch11-7.cpp #include iostream.h class Student { public: Student()

文档评论(0)

1亿VIP精品文档

相关文档