Geekband c++ 第二周(侯捷主讲)

1 拷贝构造函数 拷贝赋值函数 析构函数
构造函数,拷贝函数,析构函数是三种特殊的函数。
之前讲的类着重于类中没有带指针的情况,现在着重 类中有指针的情况
类中有指针就会导致浅拷贝,所以要考虑重新定义拷贝构造函数。
拷贝构造函数:函数名与类名相同,传入参数为自己类的object。
拷贝赋值函数和拷贝构造函数的区别:拷贝赋值函数是清空原有空间,创建新空间,将新的信息放入新的空间里;拷贝构造函数只需要创建新空间将新信息放入新空间。
拷贝赋值函数:自我检测非常重要。

2 堆、栈和内存管理
栈是存在于某个作用域的,堆是由操作系统提供的global内存空间;
栈的生命周期存在作用域结束时就结束了,是自动结束的。
静态对象的生命周期是在作用域结束之后仍然存在。
全局对象的生命周期在整个程序结束时结束,可以视为一种静态对象。
堆对象的使用要注意 内存泄漏。是否后续使用delete
在类里面使用堆对象:new 是分配一部分空间,然后调用delete。
new的操作流程是先分配一个空间,然后调用构造函数。
delete是先调用析构函数,然后再释放空间。
数组的new 一定要搭配数组的delete。

3 扩展补充
类中的静态数据或者静态函数:

将构造函数放在private区域的情况:
也就是单例,在之前有讲到过单例的情况,但没有展开介绍,

利用函数返回静态数据,以此创建和调用private里面的数据。并且构造函数不能被其它对象调用。
模版的补充:
编译器会对template进行引数推导,这一点非常方便,不需要人为设定。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值