由于最近研究的一个项目是用C++开发的, 所以不得不重温一下C++, 自己刚开始工作时候用的就是C++, 好熟悉的感觉.
智能指针——scoped_ptr
是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。
#include <string>
#include <iostream>
#include <boost/scoped_ptr.hpp>
class implementation
{
public:
~implementation() { std::cout <<"destroying implementation\n"; }
void do_something() { std::cout << "did something\n"; }
};
void test()
{
boost::scoped_ptr<implementation> impl(new implementation());
impl->do_something();
}
void main()
{
std::cout<<"Test Begin ... \n";
test();
std::cout<<"Test End.\n";
}
该代码的输出结果是:
Test Begin ...
did something
destroying implementation
Test End.
From:
Boost智能指针——scoped_ptr
分享到:
相关推荐
【Boost智能指针详解:scoped_ptr、shared_ptr与weak_ptr】 智能指针是C++中用来自动管理动态分配内存的对象,它可以确保在适当的时间释放内存,以防止内存泄漏。Boost库提供了一组智能指针类型,包括scoped_ptr、...
在C++11及更高版本中,智能指针(如`std::unique_ptr`,`std::shared_ptr`和`std::scoped_ptr`)被引入来更好地管理动态内存,因此理解如何在这些指针上实现序列化至关重要。 首先,让我们关注`std::unique_ptr`。`...
#### 三、第二类智能指针:`scoped_ptr`、`scoped_array` 和 `scoped_ptr_malloc` 第二类智能指针要求对象在同一时间只能被一个智能指针所拥有。一旦智能指针超出其作用域,它所管理的对象就会被自动释放。这类智能...
Boost库提供了一种名为`boost::scoped_ptr`的智能指针,它是一种简单的智能指针类型,适用于管理单个非托管对象。与`std::auto_ptr`相似,`boost::scoped_ptr`在对象生命周期结束时会自动调用`delete`释放内存。 `...
例如,如果你需要确保对象只被单个智能指针管理,并且该智能指针在超出作用域时自动销毁对象,那么`scoped_ptr`是一个合适的选择。另一方面,如果你需要允许多个智能指针共享对同一对象的所有权,那么应该使用`...
本文将详细介绍 STL 中的智能指针,包括 std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost::intrusive_ptr 等七种智能指针。 一、简介 ...
Boost智能指针是由C++标准委员会库工作组支持的Boost组织开发的一套智能指针解决方案,主要包括五种智能指针模板类:`scoped_ptr`、`scoped_array`、`shared_ptr`、`shared_array`以及`weak_ptr`。 ##### 1. `...
5. **boost::scoped_ptr**和**boost::scoped_array**:这两个是Boost库中的智能指针,类似于`std::unique_ptr`,但不支持移动语义和类型转换,适用于简单的所有权转移场景。 6. **boost::intrusive_ptr**:这个智能...
一、简介 由于 C++ 语言没有自动...包括:std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost:: intrusive_ptr。你可能会想,如此多的智能指
C++标准库中提供了几种智能指针类型,如std::auto_ptr、std::shared_ptr、std::unique_ptr等,而Boost库也提供了智能指针,例如boost::shared_ptr、boost::scoped_ptr等。除了标准库和第三方库提供的智能指针,不同...
- - **scoped_ptr**:这是一个只在当前作用域有效的智能指针,不允许拷贝和赋值,确保资源在作用域结束时自动释放。它可以接收`auto_ptr`的控制权,但不支持转让。 - **scoped_array**:类似于`scoped_ptr`,但...
在内存管理方面,Boost库提供了智能指针如`scoped_ptr`和`scoped_array`,它们确保了对象在作用域结束时会被正确释放,防止内存泄漏。`scoped_ptr`类似于`auto_ptr`,但不支持所有权转让,保证了对象仅在当前作用域...
- Smart_ptr库:其中包含了各种智能指针如scoped_ptr、shared_ptr、weak_ptr等。这些智能指针相较于传统的C++原生指针,可以自动管理内存,减少内存泄漏的风险,并且支持自动引用计数(ARC)。 - Conversion库:...
- **scoped_ptr**:一种独占所有权的智能指针,当其作用域结束时,所指向的对象会被自动释放。 - **scoped_array**:与`scoped_ptr`类似,但用于管理数组。 - **shared_ptr**:允许多个智能指针共享同一对象的所有权...
- **scoped_ptr**:这是一种独占所有权的智能指针,一旦销毁,所管理的对象也会被自动删除。 - **scoped_array**:与scoped_ptr类似,但用于数组的管理。 - **shared_ptr**:支持共享所有权,多个shared_ptr实例可以...
- `shared_ptr`:支持多个智能指针共享同一对象的所有权,可以实现资源的共享。 - `shared_array`:与`shared_ptr`类似,但用于数组。 - `intrusive_ptr`:与`shared_ptr`类似,但是被管理的对象需要自己实现引用...