构造函数和析构函数

构造函数是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的成员变量进行初始化,并执行对象的其他内存管理操作。构造函函数的特点是构造函数的名字的和它所在的类名相同,当定义该类的对象时构造函数完成对此对象的初始化。它可以接受参数并且可以重载。当一个类含有多个构造函数时,编译程序为了确定调用哪一个构造函数,需要对对象使用的参数和构造函数的参数表进行比较,这个过程和函数重载时进行选择是一样的。

构造函数还需说明以下几点:

(1)构造函数和普通函数一样可以有参数也可以没有参数,但不能有返回值。这是因为构造函数通常是在定义一个新对象时调用,它无法检查构造函数的返回值。

(2)在实际应用中,如果没有给类定义构造函数,则系统编译时将会为类生成一个缺省的构造函数,该缺省的构造函数没有参数,只是简单的将对象中的每个实例变量初始化为0。

(3)构造函数可以有缺省参数。


析构函数也是类中特殊的成员函数,与它定义的类具有相同的名字,但要在函数前面加一个(~)。析构函数没有参数,也没有返回值,而且也不能重载,因此一个类中只能有一个析构函数。

析构函数执行和构造函数相反的操作,通常用于释放分配给对象的内存空间。当程序超出类对象的作用域时,或者当一个类指针使用运算符delete时,系统将会自动调用析构函数。

和构造函数一样,如果在类中没有定义析构函数,编译系统会产生一个缺省的析构函数,对于大部分的类来说,缺省的析构函数就能满足要求。如果是一个对象在完成其操作之前还要做一些内部处理,则应定义析构函数。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值