`

智能指针 - scoped_ptr

阅读更多

由于最近研究的一个项目是用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

    【Boost智能指针详解:scoped_ptr、shared_ptr与weak_ptr】 智能指针是C++中用来自动管理动态分配内存的对象,它可以确保在适当的时间释放内存,以防止内存泄漏。Boost库提供了一组智能指针类型,包括scoped_ptr、...

    C++11 下使用 Boost.Serialization 库实现智能指针的序列化

    在C++11及更高版本中,智能指针(如`std::unique_ptr`,`std::shared_ptr`和`std::scoped_ptr`)被引入来更好地管理动态内存,因此理解如何在这些指针上实现序列化至关重要。 首先,让我们关注`std::unique_ptr`。`...

    Chromium学习之智能指针

    #### 三、第二类智能指针:`scoped_ptr`、`scoped_array` 和 `scoped_ptr_malloc` 第二类智能指针要求对象在同一时间只能被一个智能指针所拥有。一旦智能指针超出其作用域,它所管理的对象就会被自动释放。这类智能...

    智能指针使用

    Boost库提供了一种名为`boost::scoped_ptr`的智能指针,它是一种简单的智能指针类型,适用于管理单个非托管对象。与`std::auto_ptr`相似,`boost::scoped_ptr`在对象生命周期结束时会自动调用`delete`释放内存。 `...

    Boost智能指针

    例如,如果你需要确保对象只被单个智能指针管理,并且该智能指针在超出作用域时自动销毁对象,那么`scoped_ptr`是一个合适的选择。另一方面,如果你需要允许多个智能指针共享对同一对象的所有权,那么应该使用`...

    stl中的智能指针

    本文将详细介绍 STL 中的智能指针,包括 std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost::intrusive_ptr 等七种智能指针。 一、简介 ...

    Boost_vs_Loki

    Boost智能指针是由C++标准委员会库工作组支持的Boost组织开发的一套智能指针解决方案,主要包括五种智能指针模板类:`scoped_ptr`、`scoped_array`、`shared_ptr`、`shared_array`以及`weak_ptr`。 ##### 1. `...

    C++智能指针详解.pdf

    5. **boost::scoped_ptr**和**boost::scoped_array**:这两个是Boost库中的智能指针,类似于`std::unique_ptr`,但不支持移动语义和类型转换,适用于简单的所有权转移场景。 6. **boost::intrusive_ptr**:这个智能...

    C++智能指针用法详解

    一、简介  由于 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等。除了标准库和第三方库提供的智能指针,不同...

    boost资料总结 编程

    - - **scoped_ptr**:这是一个只在当前作用域有效的智能指针,不允许拷贝和赋值,确保资源在作用域结束时自动释放。它可以接收`auto_ptr`的控制权,但不支持转让。 - **scoped_array**:类似于`scoped_ptr`,但...

    C++boost库总结.doc

    在内存管理方面,Boost库提供了智能指针如`scoped_ptr`和`scoped_array`,它们确保了对象在作用域结束时会被正确释放,防止内存泄漏。`scoped_ptr`类似于`auto_ptr`,但不支持所有权转让,保证了对象仅在当前作用域...

    The_C++_Standard_Library(c++中文版).pdf 编程必备

    - Smart_ptr库:其中包含了各种智能指针如scoped_ptr、shared_ptr、weak_ptr等。这些智能指针相较于传统的C++原生指针,可以自动管理内存,减少内存泄漏的风险,并且支持自动引用计数(ARC)。 - Conversion库:...

    C++类库手册

    - **scoped_ptr**:一种独占所有权的智能指针,当其作用域结束时,所指向的对象会被自动释放。 - **scoped_array**:与`scoped_ptr`类似,但用于管理数组。 - **shared_ptr**:允许多个智能指针共享同一对象的所有权...

    boost库学习资料,可以与我交流

    - **scoped_ptr**:这是一种独占所有权的智能指针,一旦销毁,所管理的对象也会被自动删除。 - **scoped_array**:与scoped_ptr类似,但用于数组的管理。 - **shared_ptr**:支持共享所有权,多个shared_ptr实例可以...

    Beyond the C++Standard Library(boost中文版)

    - `shared_ptr`:支持多个智能指针共享同一对象的所有权,可以实现资源的共享。 - `shared_array`:与`shared_ptr`类似,但用于数组。 - `intrusive_ptr`:与`shared_ptr`类似,但是被管理的对象需要自己实现引用...

Global site tag (gtag.js) - Google Analytics