美文网首页
c++ 构造函数与析构函数复习

c++ 构造函数与析构函数复习

作者: loveforkeeps | 来源:发表于2015-06-05 09:06 被阅读61次

    构造函数

    一.构造函数的作用:

    构造函数主要用于来对类的对象生成标识符,对数据成员进行初始化,和分配内存空间。

    相当于Objective-c的[ [类名 alloc ] init]用alloc来给对象分配内存空间,用init方法来初始化对象。

    二.构造函数的特点:

    构造函数是没有返回值的。故也没有返回值的类型。

    构造函数的名称必须和类的名称相同。

    当生成该类的对象时,会自动调用类的构造函数。

    构造函数不能被显式调用,既不能作为对象的成员函数来调用。

    构造函数根据定义方式可分为显式构造函数和默认构造函数。显式定义的构造函数可以带有参数。当构造函数被显式定义了之后系统就不会再生成默认的构造函数。

    大多数情况下,默认生成的构造函数是没有用的,只是一个和类名相同的空函数。

    构造函数也是函数支持重载。需要注意的是重载函数的产生的二义性,使程序报错。

    三.初始化表达式:

    对象中的一些数据成员除了可以在构造函数中初始化之外,还可以用初始化列表来完成。在构造函数后面用:引出。

    初始化列表会在构造函数调用之前完成初始化操作。每个成员在初始化列表中只能出现一次,且出现的顺序与执行的顺序无关,而是取决于在类中声明的顺序。

    析构函数

    一.析构函数的作用:

    析构函数与构造函数相反,在对象被撤销时自动调用,进行对数据成员的清理工作。release啊什么的。

    二.析构函数的特点:

    析构函数名与类名相同,在函数名加~与构造函数区分。

    析构函数没有返回值和参数,故这货不能被重载,只能有一个。

    与构造函数不同的是,析构函数可以被显式调用,用于释放对象中申请的内存。

    例:对象名.~类名();

          Cat.~anima();

    相关文章

      网友评论

          本文标题:c++ 构造函数与析构函数复习

          本文链接:https://www.haomeiwen.com/subject/knqdqttx.html