c++ 构造函数与析构函数复习
2015-06-05 本文已影响61人
loveforkeeps
构造函数
一.构造函数的作用:
构造函数主要用于来对类的对象生成标识符,对数据成员进行初始化,和分配内存空间。
相当于Objective-c的[ [类名 alloc ] init]用alloc来给对象分配内存空间,用init方法来初始化对象。
二.构造函数的特点:
构造函数是没有返回值的。故也没有返回值的类型。
构造函数的名称必须和类的名称相同。
当生成该类的对象时,会自动调用类的构造函数。
构造函数不能被显式调用,既不能作为对象的成员函数来调用。
构造函数根据定义方式可分为显式构造函数和默认构造函数。显式定义的构造函数可以带有参数。当构造函数被显式定义了之后系统就不会再生成默认的构造函数。
大多数情况下,默认生成的构造函数是没有用的,只是一个和类名相同的空函数。
构造函数也是函数支持重载。需要注意的是重载函数的产生的二义性,使程序报错。
三.初始化表达式:
对象中的一些数据成员除了可以在构造函数中初始化之外,还可以用初始化列表来完成。在构造函数后面用:引出。
初始化列表会在构造函数调用之前完成初始化操作。每个成员在初始化列表中只能出现一次,且出现的顺序与执行的顺序无关,而是取决于在类中声明的顺序。
析构函数
一.析构函数的作用:
析构函数与构造函数相反,在对象被撤销时自动调用,进行对数据成员的清理工作。release啊什么的。
二.析构函数的特点:
析构函数名与类名相同,在函数名加~与构造函数区分。
析构函数没有返回值和参数,故这货不能被重载,只能有一个。
与构造函数不同的是,析构函数可以被显式调用,用于释放对象中申请的内存。
例:对象名.~类名();
Cat.~anima();