c++ - 令人困惑的成语名称 RAII
问题描述
我想我理解 RAII 的含义,并且我在 SO 上发现了很多关于这个成语的问题。我更关心的是 RAII 名称本身。我找不到将这个成语的四个词与它所描述的概念相匹配的方法。有人问过 Bjarne 吗?
在我的理解中,RAII 意味着:
- 将资源封装到一个类中。
- 资源在其构造函数中被获取,
- 然后在其析构函数中释放。
- 当对象超出范围时,此包装类必须处理资源删除。
我如何向某人解释为什么 RAII 以这样的方式命名,而没有借口这对于如此强大的成语来说不是一个好名字?
解决方案
在 RAII 类型中,构造函数获取需要管理的资源。所以,如果你这样做
RAII_Type foo;
那么资源获取发生在初始化时,所以资源获取就是初始化。
推荐阅读
- python-3.x - dict_values 对象没有属性索引
- rest - 在休息时,从语义上如何区分无效 url 返回的 404 与指向不存在资源的好 url 返回的 404?
- java - 如何在不更改 xds 文件的情况下从 CDA 模式创建 POJO 类?
- c# - 从文件中读取数字时,我的代码不会正确地将数字相加
- python - 在 python 的 str() 函数的自定义 error_handler 中引用全局变量是否可疑?
- android - com.android.support:design:27.0.2 最后一次更新是什么?
- python - 如何不检测到 webdriver?
- sql - SQL 聚合函数 COUNT
- xamarin - 使用蓝牙在两部手机之间发送数据(我正在尝试使用 aritchie 的 Plugin.BluetoothLE 插件)
- android - android coordinatorlayout 隐藏 appbarlayout 在带有底部导航的片段内