C++中构造函数和析构函数

一.构造函数

构造函数是一种特殊的成员函数,必须声明为公有的成员,其作用是为类的对象分配内存空间,进行数据成员的初始化。
构造函数的性质:
1.构造函数的名称必须与类的名称相同;
2.构造函数没有返回值,且不能为其定义函数返回值类型;
3.构造函数的参数类型可以是任意的类型,可以带有默认形参值;
4.构造函数是类的成员函数,可以访问类中的所有成员,可以重载函数,可以为内联函数;
5.对象创建是,系统会自动调用构造函数来完成对象的内存分配和初始化工作;
6.按不同的用户定义的类型,构造函数可以重载为多种类型,其中比较特殊的为复制构造函数,他是以同种类型的函数进行构造新的对象,当函数间进行赋值用算是,调用类对象作为函数的参数和返回值,这时就会调用复制构造函数,如果用户未定义系统将会自动生成;类中有指针成员时,默认的复制构造函数会造成复制构造出的对象共享原对象的内存空间,所以使用时因注意;

二.析构函数

析构函数也是一种特殊的成员函数,也被声明为公有成员,起作用是对分配的空间进行释放,做一些善后工作。
析构函数的性质:
1.析构函数的名称必须与类的名称相同,且名称前必须有‘~’;
2.析构函数没有参数,没有返回值,不能重载,且在一个类中只能有一个析构函数;
3.析构函数也能访问类中所有成员;
4.析构函数可以是虚函数;
5.当撤销对象时,系统会自动调用析构函数进行内存的释放和善后工作,将空间返还给系统;

需要注意的是,构造函数和析构函数虽然可以由系统自动生成,但对象要是调用动态内存分配时,用户必须自己定义包含new运算的构造函数,同时定义包含delete运算的析构函数,以释放空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值