【转】浅析auto_ptr(5)

时间:2025-07-14

智能指针,auto_prt的基本用法,及其示例

apa->f();

当然, 我们首先要确保这个智能指针确实拥有某个对象,否则,这个操作的行为即对空指针的提领是未定义的。

4 辅助函数

1) get用来显式的返回auto_ptr所拥有的对象指针。我们可以发现,标准库提供的auto_ptr既不提供从“裸”指针到auto_ptr的隐式转换 (构造函数为explicit),也不提供从auto_ptr到“裸”指针的隐式转换,从使用上来讲可能不那么的灵活, 考虑到其所带来的安全性还是值得的。

2) release,用来转移所有权

3) reset,用来接收所有权,如果接收所有权的auto_ptr如果已经拥有某对象, 必须先释放该对象。

5 特殊转换

这里提供一个辅助类auto_ptr_ref来做特殊的转换,按照标准的解释, 这个类及下面 4个函数的作用是:使我们得以拷贝和赋值non-const auto_ptrs, 却不能拷贝和赋值const auto_ptrs. 我无法非常准确的理解这两句话的意义,但根据我们观察与试验,应该可以这样去理解:没有这些代码,我们本来就可以拷贝和赋值non-const的 auto_ptr和禁止拷贝和赋值const的auto_ptr的功能, 只是无法拷贝和赋值临时的auto_ptr(右值), 而这些辅助代码提供某些转换,使我们可以拷贝和赋值临时的auto_ptr,但并没有使const的auto_ptr也能被拷贝和赋值。如下:

auto_ptr<int> ap1 = auto_ptr<int>(new int(0));

【转】浅析auto_ptr(5).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219