boost学习之--shared_ptr

 在boost中,有一个智能指针类shared_ptr可以管理好我们的指针。这里我不详解,以下列出使用例子。自己现写现调通过的哈:

#include <iostream>
#include <boost/shared_ptr.hpp>
#include <boost/make_shared.hpp>

using namespace std;
using namespace boost;

class Person
{
public:
    Person(string name, int age) : m_name(name), m_age(age) { cout << "construct" << endl; }
    ~Person() { cout << "destruct" << endl; }

    void print(void) { cout << "name:" << m_name << ", age:" << m_age << endl; }
private:
    string m_name;
    int m_age;
};

int main( int argc, char *argv[] )
{
    cout << "Hello, This is a test of shared_prt" << endl;
    if (1) {
        shared_ptr<Person> pMan = make_shared<Person>("Peter Lee", 24);
        pMan->print();
    }
    cout << "End test" << endl;
    return 0;
}

    编译运行结果:

    其实上面展示的功能scoped_ptr也有。但scoped_ptr是不可复制的,而shared_ptr的特点是任意复制的。shared_ptr内部有一个引用计数器,记录当前这个指针被几个shared_ptr共享。 

时间: 2024-09-20 00:56:07

boost学习之--shared_ptr的相关文章

Boost学习之正则表达式--regex

来源:http://blog.chinaunix.net/uid-21222282-id-1829265.html 来源:http://www.cnblogs.com/undermoon/archive/2009/11/30/1613508.html 来源:http://blog.csdn.net/guyulongcs/article/details/7838753 来源:http://blog.csdn.net/leonardwang/article/details/6035171 boost

boost 学习笔记

先来看看如何赋值把: #include <iostream> #include <vector> #include <string> #include<deque> #include <set> #include <map> #include <boost/assign.hpp> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { using namesp

boost学习之 时间和日期 timer

#include <iostream> #include<boost/timer.hpp> using namespace std; using namespace boost; int _tmain(int argc, _TCHAR* argv[]) { timer t; //构造函数自动启动计时工作 cout<<"max timespan(hours): "<<t.elapsed_max()/3600<<endl; cou

Boost学习之可移植路径操作--filesystem

Boost.Filesystem 库为对路径.文件和目录进行查询和操作提供了可移植的工具,已经被C++标准委员会接纳包含到TR2中. 编译 使用Boost.Filesystem 库之前要先编译它,请参考<Boost的编译> 头文件 #include <boost/filesystem.hpp> 所有Boost.Filesystem库的内容都处于名空间boost::filesystem之内. 认识basic_path类 在Boost.Filesystem库里basic_path是最重

c++内存管理学习纲要

本系列文章,主要是学习c++内存管理这一块的学习笔记. 时间:6.7-21 之下以技术内幕的开头语,带入到学习C++内存管理的技术中吧: 内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,因此要想成为C++高手,内存管理一关是必须要过的! 笔记汇总: 1.C++内存管理学习笔记(1) 2.C++内存管理学习笔记(2) 3.C++内存管理学习笔记(3) 4.C++内存管理学习笔记(4) 5.C++内存管理学习笔记(5) 6.C++内存管理学习笔记(6) 7.C++内存管理学习笔记(7

C++内存管理学习笔记(5)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com  /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9112123 /************************

C++内存管理学习笔记(4)

/****************************************************************/ /*            学习是合作和分享式的! /* Author:Atlas                    Email:wdzxl198@163.com    /*  转载请注明本文出处: *   http://blog.csdn.net/wdzxl198/article/details/9094793 /**********************

学生党如何拿到阿里技术offer:《阿里面试经历-2014.4.18研发实习生面试经历(失败)》

我们分享的上一篇文章是一位学长在大三的时候面试阿里实习生成功的经历的分享,其实就像学长在上一篇文章最后说的那样"面试并没有想的那么难,运气也会占一部分.",其实我个人觉得,对于我们而言,自己越努力就会越幸运,西方有句谚语"上帝助自助者",其实说的都是一个道理.对于怀有梦想的技术宅而言,既要仰望星空看世界浪潮,也要脚踏实地努力奋斗. 面试时对于技术人员而言,技术能力肯定是衡量优劣的标准,所以只有技术过硬,你才会"有料",胸中"有料&quo

c++ 编程问题-高人来帮助下小弟,纠结到吐血的问题

问题描述 高人来帮助下小弟,纠结到吐血的问题 先上下vs2010报错代码 1> 正在创建库 D:QtprojectsrcServerDebugServer.lib 和对象 D:QtprojectsrcServerDebugServer.exp 1>net_comm.obj : error LNK2019: 无法解析的外部符号 "public: void __thiscall tcp_session::write(class tcp_message *)" (?write@t