boost shared_ptr 用法

简介:

1 shared_ptr    不明确的符号

boost的一些库,比如share_ptr已经被高版本的stl采纳了.如果在代码中没有指定命名空间,编译器就无法得知应该使用哪个命名空间之下的代码进行编译如下引入的命名空间的方式不推荐

using namespace std;

using namespace tr1;

using namespace boost;

实际上两个智能指针是一样的,你只需要用一个即可.如果你一定要两个都用,那么不要写上面的语句.而是应该写std::tr1::xxxx, boost:xxxx


2 shared_ptr 作为类成员函数的写法

#include <iostream>

#include <boost/shared_ptr.hpp>


struct SStudentInfo

{

public:

SStudentInfo() 

{

std::cout << "Create instance" << std::endl;

};


~SStudentInfo() 

{

std::cout << "Free instance" << std::endl;

}

};


class CTestSharedPtr

{

public:


CTestSharedPtr() 

{

//m_student = new SStudentInfo();//error

m_student = boost::shared_ptr<SStudentInfo>(new SStudentInfo());

};


~CTestSharedPtr() {};

private:


boost::shared_ptr<SStudentInfo> m_student;

};





    本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1945834,如需转载请自行联系原作者



相关文章
|
4月前
|
安全 C++ 开发者
C++ 11新特性之shared_ptr
C++ 11新特性之shared_ptr
36 0
|
7月前
|
设计模式 C++ 开发者
C++一分钟之-智能指针:unique_ptr与shared_ptr
【6月更文挑战第24天】C++智能指针`unique_ptr`和`shared_ptr`管理内存,防止泄漏。`unique_ptr`独占资源,离开作用域自动释放;`shared_ptr`通过引用计数共享所有权,最后一个副本销毁时释放资源。常见问题包括`unique_ptr`复制、`shared_ptr`循环引用和裸指针转换。避免这些问题需使用移动语义、`weak_ptr`和明智转换裸指针。示例展示了如何使用它们管理资源。正确使用能提升代码安全性和效率。
139 2
|
8月前
|
存储 安全 程序员
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
300 0
shared_ptr产生的交叉引用问题
智能指针方便了程序设计人员对于内存的使用,但是也带来了很多问题。如交叉引用问题、线程安全问题等,本文将详细介绍交叉引用问题。
|
8月前
|
安全 编译器 C++
[C++] 智能指针(shared_ptr、unique_ptr)
[C++] 智能指针(shared_ptr、unique_ptr)
80 1
|
编译器 C++
shared_ptr 和 unique_ptr 深入探秘
shared_ptr 和 unique_ptr 深入探秘
165 0
关于 error: C2039: “shared_ptr”: 不是“std”的成员 的解决方法
关于 error: C2039: “shared_ptr”: 不是“std”的成员 的解决方法
关于 error: C2039: “shared_ptr”: 不是“std”的成员 的解决方法
|
安全 前端开发 网络安全
【Example】C++ 标准库智能指针 unique_ptr 与 shared_ptr
在现代 C + + 编程中,标准库包含智能指针,智能指针可处理对其拥有的内存的分配和删除,这些指针用于帮助确保程序不会出现内存和资源泄漏,并具有异常安全。C 样式编程的一个主要 bug 类型是内存泄漏。 泄漏通常是由于为分配的内存的调用失败引起的 delete new。 现代 C++ 强调“资源获取即初始化”(RAII) 原则。 其理念很简单。 资源(堆内存、文件句柄、套接字等)应由对象“拥有”。 该对象在其构造函数中创建或接收新分配的资源,并在其析构函数中将此资源删除。 RAII 原则可确保当所属对象超出范围时,所有资源都能正确返回到操作系统。 --Microsoft Docs
234 0
|
安全 C++
boost1.53中的lock-free
boost1.53中的lock-free
508 0
shared_ptr 的使用及注意事项
1. 声明#include class UsersBitmap { ... } typedef boost::shared_ptr UsersBitmapPtr; 2. 使用 UsersBitmapPtr login_users_;UsersBitmapPtr temp_login_users(new UsersBitmap());    //指向对象 login_users_.
1202 0