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,如需转载请自行联系原作者



相关文章
|
2月前
|
安全 C++ 开发者
C++ 11新特性之shared_ptr
C++ 11新特性之shared_ptr
23 0
|
6月前
|
存储 安全 程序员
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
【C++ 包装器类 智能指针】完全教程:std::unique_ptr、std::shared_ptr、std::weak_ptr的用法解析与优化 — 初学者至进阶指南
248 0
shared_ptr产生的交叉引用问题
智能指针方便了程序设计人员对于内存的使用,但是也带来了很多问题。如交叉引用问题、线程安全问题等,本文将详细介绍交叉引用问题。
|
6月前
|
安全 编译器 C++
[C++] 智能指针(shared_ptr、unique_ptr)
[C++] 智能指针(shared_ptr、unique_ptr)
71 1
|
6月前
|
消息中间件 Kubernetes NoSQL
c++ std::enable_shared_from_this作用
c++ std::enable_shared_from_this作用
|
编译器 C++
shared_ptr 和 unique_ptr 深入探秘
shared_ptr 和 unique_ptr 深入探秘
159 0
|
安全 Linux 开发工具
C++11 智能指针之shared_ptr<void>
基于Alexa的全链路智能语音SDK基于C++实现了跨平台特性,跑通了Android、Mac、Linux等设备,在兼容iOS时发现iOS未提供音频采集和播放的C++接口,所以需要改造SDK,允许SDK初始化时注入外部的采集器和播放器实现类,同时SDK中的Android播放器是基于ffmpeg解码 + opensl实现,但是考虑到包体积的问题,准备也基于这个接口在外部实现基于Android硬件解码的播放器。
528 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
226 0
|
安全 C++
boost1.53中的lock-free
boost1.53中的lock-free
493 0