类的6个默认成员函数(重点)

1.构造函数:(主要任务是初始化对象),类似Init()函数的功能

特征:3为实质

2.析构函数:(主要任务是清理空间,否则空间泄露),类似destory()函数的功能

默认构造函数(编辑器默认生成的,无参构造函数,全缺省构造函数):不传参就可以调用的函数。

自定义类型要使用默认构造函数,内置类型无所谓

3:拷贝构造函数(构造函数的一个子分类):用同类型的对象拷贝初始化

拷贝构造函数的要求:

自定义类型传值传参要调用拷贝构造

如果不使用&会发生无穷递归。所以拷贝构造的参数必须引用

Date d1(d2) 等价于 Date d1=d2

浅拷贝:按字节一个一个拷贝

深拷贝:开一样大小的空间,拷贝一样的值

当不写拷贝构造时,栈这类的会出现问题(浅拷贝/值拷贝)(主要原因:析构两次(指向了同一空间))

解决方案:采用深拷贝

但是要注意这里的MyQueue中的自定义类型为栈,还是要写栈的拷贝构造

5月16日

运算符重载:

注意事项:

.*出现的情况

将私有变成全局的方法:重载成成员函数

变成成员变量,这里有一个默认的this,要进行修改,现在类里面找,再到全局里面找

赋值拷贝/赋值重载:把一个已经存在的对象,拷贝给另一个已经存在的对象

引用返回:会出现野引用/野指针的情况,可以使用传值返回解决(如果时静态static可以使用引用返回),主要就看会不会产生析构,会就传值,不会就引用,(拷贝会牺牲性能)

两种能够正确返回的方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值