常见面试题之RAII

简介: 常见面试题之RAII

面试时碰到这么一道面试题,面试官说请谈一谈RAII。


其实就是Resouce Acquisition Is Initialization,资源获取即初始化。


抓住两个点。1,获取资源后立即放进管理对象。


2,管理对象运用析构函数确保资源被释放。


如果用自己的话说:这是c++管理资源,避免内存泄漏的一种方式。典型的应用是智能指针,创建对象的时候使用智能指针接管,离开其作用域自动释放资源。


如果想回答得艺术一点,可以引用自己看过的书。Effective C++ 里面的条款13 use objects to manage resouces(用对象管理资源)这一节,正是谈论的这个问题。

相关文章
|
2月前
|
C++
C++:一文读懂智能指针
C++:一文读懂智能指针
70 0
|
9月前
|
安全 C++
C++进阶 智能指针(下)
C++进阶 智能指针(下)
33 0
|
18天前
|
C++ 容器
【编程技巧】 C++11智能指针
C++11引入了智能指针以自动管理内存,防止内存泄漏和悬挂指针: - `shared_ptr`:引用计数,多所有权,适用于多个对象共享资源。 - `unique_ptr`:独占所有权,更轻量级,适用于单一对象所有者。 - `weak_ptr`:弱引用,不增加引用计数,解决`shared_ptr`循环引用问题。 ## shared_ptr - 支持引用计数,所有者共同负责资源释放。 - 创建方式:空指针、new操作、拷贝构造/移动构造,以及自定义删除器。 - 提供`operator*`和`operator->`,以及`reset`、`swap`等方法。 ## unique_ptr
228 1
|
2月前
|
安全 C语言 C++
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(中)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
33 0
|
2月前
|
安全 Linux 编译器
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(下)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
26 0
|
2月前
|
Linux 调度 C语言
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)(上)
从C语言到C++_40(多线程相关)C++线程接口+线程安全问题加锁(shared_ptr+STL+单例)
38 0
|
2月前
|
C++
【C++11(三)】智能指针详解--RAII思想&循环引用问题
【C++11(三)】智能指针详解--RAII思想&循环引用问题
|
10月前
|
安全
多线程访问同步方法的7种情况(面试常考)
多线程访问同步方法的7种情况(面试常考)
46 0
多线程访问同步方法的7种情况(面试常考)
|
2月前
|
设计模式 安全 编译器
多线程(初阶六:单例模式)
多线程(初阶六:单例模式)
30 0