第十二章笔记-动态内存与智能指针

本文介绍了C++11中新增的智能指针类型shared_ptr和unique_ptr,以及weak_ptr的概念,探讨了动态内存使用的场景,并对比了值初始化与默认初始化的区别,最后讲解了allocater类的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.c++11新标准库提供了两种智能指针类型来管理动态对象,只能指针的行为类似常规指针,区别是它自动释放所指向的内存。

头文件#include <memory>

两种智能指针:

shared_ptr:允许多个指针指向同一个对象。

unique_ptr:独占所指向的对象。

伴随类weak_ptr:指向share_ptr所管理的对象
 

2.使用了动态生存期的资源的类程序使用动态内存出于以下三种原因

1.程序不知道自己需要使用多少对象

2.程序不知道所需对象的准确类型

3.程序需要在多个对象间共享数据。

使用动态内存的一个常见的原因是允许多个对象共享相同的状态

 

3.值初始化和默认初始化的区别

对于定义了自己的构造函数的类类型来说,值初始化是没什么意义的;而对于内置类型,值初始化的内置类型对象有着良好定义的值,而默认初始化的对象的值则是未定义的。

 

4.allocater类

它帮助我们将内存分配和对象构造分离开来(new它将分配内存和对象构造组合在一起了,而delete将释放内存和对象析构组合在一起了)

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值