//简单模拟实现boost库下的shared_ptr
#include
#include
using namespace std;
class shared_ptr_Rep
{
friend class shared_ptr;
public:
shared_ptr_Rep(const char *str = " ") :count(0)
{
px = new char[st...
分类:
编程语言 时间:
2015-07-22 10:55:25
阅读次数:
141
我的经验:在强调运行效率的场合:shared_ptr/weak_ptr很好用,尤其是weak_ptr这个能够判断一个对象的生命周期的玩意,可以简化和扩展很多设计。unordered系列的容器也很不错。thread+function+bind是异步编程的利器。signal:这个因为个人比较喜事件驱动这...
分类:
其他好文 时间:
2015-07-20 09:10:22
阅读次数:
123
对象池的实现其实是非常简单的
思想也是很简单的:
用一个队列来存放所有的对象,需要时get一个对象,从队列头取一个对象,当用完后,重新将该对象投入到队列尾部。
#ifndef OBJ_POOL_H_
#define OBJ_POOL_H_
#include
#include
#include
using std::queue;
using std::shared_ptr;...
分类:
编程语言 时间:
2015-07-18 17:03:44
阅读次数:
121
我们发现设计模式在Java社区很流行,但是在C++社区却没有那么被关注,甚至有点被排斥,究竟是什么原因造成这个差异的呢?
(1)C++内存需要自己管理,所以有些模式在C++里使用不是那么方便,但是Java不用关心内存,所以在Java里的使用设计模式有天生的优势。随着shared_ptr, weak_ptr, unique_ptr等加入C++11,相信这方面会有所改进。
(2)在J...
分类:
编程语言 时间:
2015-07-14 18:06:04
阅读次数:
170
本将主要介绍智能指针shared_ptr和unique_ptr,并简单实现基于引用计数的智能指针。 自C++11起,C++标准提供两大类型的智能指针: 1. Class shared_ptr实现共享式拥有(shared ownership)概念。多个智能指针可以指向相同对象,该对象和其相关资...
分类:
编程语言 时间:
2015-07-14 17:30:18
阅读次数:
254
just read it
smart_ptr: https://mbevin.wordpress.com/2012/11/18/smart-pointers/
move: https://mbevin.wordpress.com/2012/11/20/move-semantics/...
分类:
编程语言 时间:
2015-06-26 13:03:36
阅读次数:
237
以独立语句将newed对象置入智能指针本节我们需要学习的知识核心是注意编译器在同一语句中,调用次序具有不确定性,不同语句中,调用次序确定。
上面的话什么意思?
请看以下代码:int priority();
int processWidget(shared_ptr pw, int priority);
processWidget(shared_prt pw(new...
分类:
编程语言 时间:
2015-06-24 16:22:53
阅读次数:
173
在资源管理器中小心copying行为上节是对资源的管理说明,有时候我们不能依赖于shared_ptr或者auto_ptr,所以我们需要自己建立一个资源管理类来管理自己的资源。例如建立一个类来管理Mutex锁,现在使用函数处理类型为Mutex的互斥器对象class Lock{
public:
explicit Lock(Mutex* mu):mutexPtr(mu)
{...
分类:
编程语言 时间:
2015-06-24 13:05:32
阅读次数:
125
在资源管理类中提供对原始资源的访问前面两节都在讨论如何管理资源,一般情况下,使用资源管理类来屏蔽原始资源,对抗内存泄露等问题,避免使用原始资源。这样我们就无法直接访问原本的原始资源。毕竟程序在有些时候是需要操纵原始资源的,许多APIs要求使用原始资源。为了能操纵原始资源,我们要怎么做?
还好,shared_ptr和auto_ptr都提供一个get函数,用于执行这样的显示转换。这时如果在调用API时...
分类:
编程语言 时间:
2015-06-24 12:59:20
阅读次数:
125