1. 为什么要智能指针?由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。但是有时候可能程序员会忘记delete,也可能是因为流程太复杂,最终没有delte,也可能是因为异常的存在,导致程序过早的退出,没有执行delete。用只能指针可以有效的解决这些问题。std:...
分类:
其他好文 时间:
2014-07-07 19:37:10
阅读次数:
323
现代 C++ 强调:基于堆栈的范围,而非堆或静态全局范围。自动类型推理,而非显式类型名称。智能指针而不是原始指针。std::string和std::wstring类型(请参见),而非原始char[]数组。标准模板库(STL) 容器(例如vector、list和map),而非原始数组或自定义容器。请参...
分类:
编程语言 时间:
2014-06-29 18:46:28
阅读次数:
255
简介
内存管理一直是 C++ 一个比较繁琐的问题,而智能指针却可以很好的解决这个问题,在初始化时就已经预定了删除,排解了后顾之忧。1998年修订的第一版C++标准只提供了一种智能指针:std::auto_ptr(现以废弃),它基本上就像是个普通的指针:通过地址来访问一个动态分配的对象。std::auto_ptr之所以被看作是智能指针,是因为它会在析构的时候调用delete操作符来自动释放所包...
分类:
其他好文 时间:
2014-06-26 12:07:31
阅读次数:
328
// STL.cpp : 定义控制台应用程序的入口点。////智能指针在其生命周期结束后会自动调用delete#include "stdafx.h"#include#includeusing namespace std;class WebSite{public: WebSite(int x){...
分类:
其他好文 时间:
2014-06-25 20:09:38
阅读次数:
216
1. auto_ptr 的设计动机:函数操作经常依照下列模式进行:获取一些资源执行一些动作释放所获取的资源那么面对这些资源的释放问题就会出现下面的两种情况:一开始获得的资源被绑定于局部对象,那么当函数退出的时候,这些局部对象的析构函数被自动的调用,从而自动释放掉这些资源;一开始获得的资源是通过某种显...
分类:
编程语言 时间:
2014-06-16 13:43:39
阅读次数:
351
(一)
假设有下面这两个函数:
int priority();
void processWidget(tr1::shared_ptr pw, int priority);
现在这样调用它:
processWidget(new Widget, priority());
但是!上面这种调用不能通过编译,因为tr1::shared_ptr构造函数需要一个原始指针,但是,这个构造函数是expl...
分类:
编程语言 时间:
2014-06-16 11:31:09
阅读次数:
296
众多周知,指针在C/C++是一个很重要的手段,但是也是最让人麻烦的东西,容易出现空指针,或者内存泄漏,无非是new了一个对象,没有对应的delete,长时间运行导致系统崩溃!
在android系统中其实也有这个指针这个概念,只不过被用另外的一种安全机制弥补以上的麻烦。...
分类:
移动开发 时间:
2014-06-15 18:37:20
阅读次数:
435
既然“指针”的使用者一不小心就可能导致内存泄漏,那么我们如何能够使得指针的使用变得更安全呢?从C++面向对象的角度分析,我们有没有可能将“指针”封装起来,使得用户不直接接触指针,而使用一个封装后的对象来替代指针的操作呢?
答案是显然的,“智能指针”(smart pointer)正解决这类问题,尤其是在防止内存泄漏方面做得非常突出。C++标准库std中提供了一种“智能指针类”名为"...
分类:
编程语言 时间:
2014-06-15 15:04:11
阅读次数:
352
作者:刘昊昱
博客:http://blog.csdn.net/liuhaoyutz
Android版本:4.4.2
在上一篇文章中,我们分析了Android智能指针中的强指针sp,本文我们来分析弱指针wp。为什么需要弱指针wp呢?我们来考虑下面一种场景:有两个类CParent和CChild,CParent类中有一个智能指针指向CChild对象,CChild类中有一个智能指针指向CPa...
分类:
移动开发 时间:
2014-06-14 12:49:20
阅读次数:
347
Boost智能指针——scoped_ptrboost::scoped_ptr和std::auto_ptr非常类似,是一个简单的智能指针,它能够保证在离开作用域后对象被自动释放。下列代码演示了该指针的基本应用:#include
#include #include class imple...
分类:
其他好文 时间:
2014-06-13 14:42:54
阅读次数:
299