C++核心编程

类和对象的初始化和清理(一)

一、构造函数和析构函数

对象的初始化和清理也是两个非常重要的问题,一个对象或者没有初始化对其使用后果都是未知的

同样的使用一个对象或变量,没有既是清理也会造成一定的安全问题

C++利用构造函数和析构函数解决上述问题。这两个函数将会被“编译器”自动调用,完成对象初始化和清理工作。对象的初始化和清理工作,对象的初始化和清理工作是编译器强制我们做的事,因此我们不提供构造函数和析构,编译器会提供编译器提供的构造函数和析构函数实现。

构造函数:主要作用在于创建对象时为对象成员属性赋值,构造函数由编译器自动调用无须手动调用

析构函数:主要作用在于对象销毁的系统,自动调用执行一些清理工作

构造函数语法:类名(){}

1.构造函数,没有返回值也不写void

2.函数名称与类名相同

3.构造函数可以有参数,因此可以发生重载

4.程序在调用时对象时候会自动调用无须手动调用而且只会调用一次

析构函数:~类名(){ }

1.析构函数没有返回值也不写void

2.函数名称与类名相同,在名称前可以加上符号

3.析构函数不可以有参数,因此不可以发生重载

4.程序在对象销毁前会自动调用析构函数,无须手动调用而且只会调用一次

二、构造函数的分类及调用

两种分类方式:按参数分为:有参构造和无参构造

: 普通构造和拷贝构造

三种调用方式:括号法 显示法 隐式转换法

调用默认构造函数时不需要用()

匿名对象,特点:当前执行结束后,系统会立即回收匿名对象

注意:不要利用拷贝构造函数初始化匿名对象,编译器会认为

Person(p3)=Person p3;        时对象声明

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值