类和对象 中

一.类的6个默认成员函数

请添加图片描述

默认成员函数是特殊的成员变量,当我们不编写这些函数的时候,编译器会自动生成;而当我们编写了这些函数的时候,编译器便不再生成。换句话讲,有些类中这些函数需要我们自己写,而有些类中我们不需要编写这些函数,由编译器自动生成。

二.构造函数

1.构造函数的引入

请添加图片描述

2.构造函数的特性

a.构造函数名与类名相同
b.构造函数无返回值
c.对象实例化时编译器自动调用对应的构造函数
也就是说,是在main函数构造对象后,再调用构造函数,对对象相应的类成员变量初始化。构造函数的功能是初始化,而不是构造对象!!!
d.构造函数可以重载

请添加图片描述

e.如果类中没有显式定义构造函数,会自动生成一个无参的默认构造函数,一旦用户显式定义编译器将不再生成。
编译器生成的默认构造函数只对自定义类型(class/struct/union等自己定义的类型)的变量调用默认构造,而对内置类型(int/char/double/指针等)不处理。

请添加图片描述

请添加图片描述

3.缺省参数的混合使用

请添加图片描述

三.析构函数

1.析构函数的引入

请添加图片描述

2.析构函数的特性

a.析构函数的函数名是在类名前加~
c语言中字符~的意思是按位取反
b.无参数返回值
c.一个类中只有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。
注意:析构函数不能重载。
d.对象生命周期结束的时候,编译器会自动调用析构函数


@1.作用域不一定影响变量的生命周期
@2.命名空间不影响变量的生命周期
@3.局部域、全局域影响变量的生命周期
@4.局部对象会函数栈帧销毁的时候随之销毁
@5.malloc的变量需要程序员手动free


e.如果类中没有显式定义析构函数,会自动生成一个无参的默认析构函数,一旦用户显式定义编译器将不再生成。
编译器生成的默认析构函数只对自定义类型(class/struct/union等自己定义的类型)的变量调用默认构造,而对内置类型(int/char/double/指针等)不处理。
请添加图片描述

在这里插入图片描述


! 构造顺序是按照语句的顺序进行构造,析构是按照构造的相反顺序进行析构


四.拷贝构造函数

1.拷贝函数的引入

2.拷贝函数的特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值