条款12: 以对象管理资源 两种只能指针: std:auto_ptr当使用copy操作室,原先的智能指针指向为nullstd:tr1:share_ptr spi();当可以多个指向同样的地址,但是当delete是会进行根据指向改地址的指针数量是否要delete这块内存条款13 在资源管理中小心cop...
分类:
编程语言 时间:
2015-05-09 23:23:57
阅读次数:
227
??
shared_ptr是一个引用计数智能指针,用于共享对象的所有权。它可以从一个裸指针、另一个shared_ptr、一个auto_ptr、或者一个weak_ptr构造。还可以传递第二个参数给shared_ptr的构造函数,它被称为删除器(deleter)。删除器用于处理共享资源的释放,这对于管理那些不是用new分配也不是用delete释放的资源时非常有用。shared_ptr被创建后,就可以...
分类:
编程语言 时间:
2015-05-05 12:35:00
阅读次数:
179
概述跟Java和C#类似,OC创建的对象在堆上。与Java和C#不同的是Java和C#有垃圾回收机制,所以不需要程序员手动释放堆上的内存。而OC没有垃圾回收机制,必须手动管理内存的创建和释放。下面介绍一下OC内存管理内存管理的方式。引用计数器OC管理内存的方式类似C++中的智能指针,创建一个对象时,...
分类:
其他好文 时间:
2015-05-03 20:18:37
阅读次数:
176
//C++智能指针模板类复习
#include
#include
using namespace std;
//智能指针用于确保程序不存在内存和资源泄漏且是异常安全的。
//C++98中提供了auto_ptr,C++11摒弃了auto_ptr,并提出了unique_ptr 、shared_ptr、weak_ptr
void show1()
{
int* p = ne...
分类:
编程语言 时间:
2015-04-27 21:57:40
阅读次数:
247
//#45 运用成员函数模版接受所有兼容类型
{
/* 1:当你使用智能指针的时候,会发生一个问题,想把一个子类的对象赋给基类的指针变得不可能了,
因为智能指针指定了的是基类的类型,而赋给它的是一个它的子类的对象。
2:解决办法,使用成员函数模版,可以分别对拷贝构造函数和赋值操作进行模版化: */
templatecla...
分类:
编程语言 时间:
2015-04-26 10:55:34
阅读次数:
208
最近在学习Boost的智能指针,下面对一些很好的文章进行整理如下:Boost智能指针——scoped_ptrhttp://www.cnblogs.com/TianFang/archive/2008/09/15/1291050.htmlBoost智能指针——shared_ptrhttp://www.c...
分类:
其他好文 时间:
2015-04-25 13:23:54
阅读次数:
125
#pragma once
#include
#include
using namespace std;
template
class SmartPointer
{
//不允许有SmartPointer sp=new T()这样的使用方式能给sp赋值的只有另一个sp对象和构造方法
public:
SmartPointer(T* p = 0) :ptr(p), ref_count(new siz...
分类:
其他好文 时间:
2015-04-24 14:23:10
阅读次数:
104
1) 观察者模式定义略,各种设计模式的书上都有定义。2) 观察者模式一般实现观察者模式一般实现,都是“被观察者”保存一个“观察者”的列表,循环这个列表来通知“观察者”。代码,其中使用了boost的智能指针shared_ptr:[cpp]view plaincopy#include#include#i...
分类:
其他好文 时间:
2015-04-23 23:10:45
阅读次数:
226
导读 最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你自己设计一个智能指针,你如何完成?等等....
分类:
编程语言 时间:
2015-04-23 17:05:26
阅读次数:
192