c++学习-RAII初识

本文介绍了C++中的RAII(Resource Acquisition Is Initialization)概念,通过实例展示了如何使用类对象管理资源,确保在对象生命周期内资源的有效性,并在对象析构时自动释放资源。通过RAII可以避免资源泄露,提高代码的健壮性。
摘要由CSDN通过智能技术生成

本文主要记载今天早上读到的两篇blog的一些读书笔记。参考链接如下:
[C++中的RAII机制]
[RAII惯用法:C++资源管理的利器]

基本概念

1.什么是RAII(Resource Acquisition Is Initialization)?

中文可将其翻译为“资源获取就是初始化”。当然,这句话肯定并没有揭示出背后本质的思路。
Bjarne这样写道:使用局部对象管理资源的技术通常称为“资源获取就是初始化”

2 . RAII通常的做法是什么?

RAII的做法是使用一个对象(用对象来管理资源申请、资源使用、资源释放),在其构造时获取对应的资源,在对象生命期内控制对资源的访问,使之始终保持有效,最后在对象析构的时候,释放构造时获取的资源。简言之,对象管理资源,构造的时候申请资源,析构的时候释放资源.

3 . 为什么RAII要这么做,它背后的设计思想是什么?

在C++中,定义在栈空间上的局部对象称为自动存储(automatic memory)对象。管理局部对象的任务非常简单,因为它们的创建和销毁工作是由系统自动完成的。我们只需在某个作用域(scope)中定义局部对象(这时系统自动调用构造函数以创建对象),然后就可以放心大胆地使用之,而不必担心有关善后工作;当控制流程超出这个作用域的范围时,系统会自动调用析构函数,从而销毁该对象。

读者可能会说:如果系统中的资源也具有如同局部对象一样的特性,自动获取,自动释放,那该有多么美妙啊!。事实上,您的想法已经与RAII不谋而合了。既然类是C

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值