Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;_C++_Smart Pointers_Raii - Fatal编程技术网

C++ C++;

C++ C++;,c++,smart-pointers,raii,C++,Smart Pointers,Raii,我还不清楚这两者之间的区别。我读到的关于它们的内容非常庞大和复杂(就像C++一样)。例如,它属于几年前,也来自维基百科。这个问题本身可能很复杂 我对它们的看法是,RAII是一种用于智能指针的机制,但我不确定这一点。我需要一个简单明了的答案 请您用一个简单的语言和一个小的示例代码解释一下好吗? 请记住,我在C++中处于低级。 < P>它们是互补的概念。RAII意味着对象自动管理自己的资源。智能指针是实现分配内存RAII的一种方法。是一种技术: 资源获取是初始化或RAII,是一种C++编程技术[1

我还不清楚这两者之间的区别。我读到的关于它们的内容非常庞大和复杂(就像C++一样)。例如,它属于几年前,也来自维基百科。这个问题本身可能很复杂

我对它们的看法是,RAII是一种用于智能指针的机制,但我不确定这一点。我需要一个简单明了的答案

请您用一个简单的语言和一个小的示例代码解释一下好吗?
请记住,我在C++中处于低级。

< P>它们是互补的概念。RAII意味着对象自动管理自己的资源。智能指针是实现分配内存RAII的一种方法。

是一种技术:

资源获取是初始化或RAII,是一种C++编程技术[1 ] [2 ],它绑定了资源的生命周期(<强>分配内存、执行线程、打开套接字、打开文件、锁定互斥、数据库连接中存在的任何供应不足/强>)到具有自动存储持续时间的对象的生存期

RAII的概念包括所有有限的资源,而我们需要管理动态分配的内存或由普通指针表示的任何资源,遵循RAII。

是使用C++自动调用析构函数来释放构造函数中获取的资源的想法

首字母缩略词只是含糊地表示,资源获取是初始化


A是一个类,它至少重载
运算符->
和取消引用
运算符*
,以启用指针表示法。通常,智能指针将使用RAII技术自动释放内存。但它可以做其他事情。然而,智能指针以某种方式处理包含的原始指针的“所有权”,这是隐含的。例如,一个简单的迭代器类重载
运算符->
运算符*
,但不被视为智能指针。

谢谢。所以我对他们的看法是正确的!:)