原文地址为:http://www.drdobbs.com/cpp/c11-uniqueptr/240002708
在C++11中加入了很多的新特性,unique_ptr一枝独秀,对于动态分配的内存对象,它简单有效。虽然它不是万能的,但是它做的已经够好了:利用简单的语法便可以管理动态分配的对象。
基本语法:
unique_ptr 是一个模板类,你可以很简单地构造一个unique_ptr...
分类:
编程语言 时间:
2014-08-24 16:44:52
阅读次数:
238
1 基于文件指针的数据读写 基于文件指针的数据读写,通常为标准函数,在Windows与Linux下,均可以使用。 数据块读写 NAME fread, fwrite - binary stream input/outputSYNOPSIS #include size_t fread(void *ptr...
分类:
其他好文 时间:
2014-08-23 12:31:00
阅读次数:
203
条款13:以对象管理资源
使用RAII,获得资源后立刻放进管理对象,管理对象运用析构函数确保资源被释放。
为防止资源泄露,请使用RAII对象,它们在构造函数中获得资源并在析构函数中释放资源。
两个常被使用的RAII类是tr1::shared_ptr和tr1::auto_ptr。前者通常是较佳选择,因为其拷贝行为比较直观。若选择auto_ptr,复制动作会使被复制物指向null.
条款14...
分类:
编程语言 时间:
2014-08-22 16:22:49
阅读次数:
250
"[]"的用法在"常见问题"已经有所说明,引用如下:1、push dword ptr [024c1100] 压栈024c1100值的双字 2、cmp eax,[ebp+14] eax-ebp+14的有效值,不保留值,主要看标志位 3、cmp byte ptr [eax],46 字节型ea...
分类:
编程语言 时间:
2014-08-21 18:37:44
阅读次数:
266
BOOST库里面给出的几种智能指针中最简单也是与auto_ptr最接近的一种指针。...
分类:
其他好文 时间:
2014-08-21 17:16:44
阅读次数:
171
13.27 定义使用引用计数版本的HasPtr#include#include#includeusing namespace std;class HasPtr{public: HasPtr(const string &s=string()):ps(new string(s)),i(0),use...
分类:
其他好文 时间:
2014-08-20 23:59:13
阅读次数:
474
1、在资源管理类中提供对原始资源的访问 前几个条款很棒,它们是对抗资源泄露的壁垒,但很多APIs直接指向 资源,这个时候,我们需要直接访问原始资源。 这里,有两种方法解决上述问题,我们可将RAII对象转换为原始资源。通过 显式转换与隐式转换。 通常,tr1:: shared_ptr 和 auto_p...
分类:
编程语言 时间:
2014-08-20 16:14:02
阅读次数:
177
对于函数: int priority(); void processWidget(std::tr1:: shared_ptr pw,int priority); 调用以上函数 processWidget(new Widget,priority()); 以上调用错误,因为shared_ptr构造函数需...
分类:
编程语言 时间:
2014-08-20 16:11:22
阅读次数:
194
C语言中常用的内存分配函数有malloc、calloc和realloc等三个,其中,最常用的肯定是malloc,这里简单说一下这三者的区别和联系。
1、声明
这三个函数都在stdlib.h库文件中,声明如下:
void* realloc(void* ptr, unsigned newsize);
void* malloc(unsigned size);
void* c...
分类:
数据库 时间:
2014-08-20 10:34:06
阅读次数:
234
12.20 编写程序,逐行读入一个输入文件,将内容存入一个StrBlob中,用一个StrBlobPtr打印出StrBlob的每个元素。StrBlob.h#ifndef STRBLOB_H#define STRBLOB_H#include#include#include#includeusing na...
分类:
其他好文 时间:
2014-08-19 22:06:45
阅读次数:
277