对auto_ptr的学习
auto_ptr是C++标准库提供的类模板,它可以帮助程序员自动管理用new表达式动态分配的单个对象,不过对用new表达式分配的数组管理没有类似的支持,不能用auto_ptr存储数组,如果这样做了,结果将是未定义的.
auto_ptr对象被初始化为指向由new表达式创建的动态分配对象.当auto_ptr对象的生命期结束时,动态分配的对象被自动释放.
在使用auto_ptr类模板之前,必须包含下面的头文件:
#include
auto_ptr对象的定义有下面三种形式:
auto_ptr
auto_ptr
auto_ptr
type_pointed_to代表由new表达式创建的对象的类型.在最常见的情况下,我们希望把auto_ptr直接初始化为new表达式返回的对象地址.可以这样来做:
auto_ptr
pi被初始化为由new表达式创建的对象的地址,且该对象的初始化值为1024.可以检查auto_ptr所指的对象的值,方式与普通指针相同:
if (*pi != 1024);
new表达式创建的对象由pi指向,当pi的生命期结束时,它将被自动释放.如果pi是全局对象,则pi所指向的对象在程序结束时释放.
如果我们用一个class类型的对象初始化auto_ptr对象,比如标准的string类型,则:
auto_ptr
假设现在希望访问一个字符串操作,对于普通的string指针,会按照下面这样来做:
string* pstr_type = new string("Hello World");
pstr_type->size();
- 上一篇:c++文件拷贝
- 下一篇:seq_file应用