大多数C++类用三种方法之一管理指针成员 (1)不管指针成员。复制时只复制指针,不复制指针指向的对象。当其中一个指针把其指向的对象的空间释放后,其它指针都成了悬浮指针。这是一种极端 (2)当复制的时候,即复制指针,也复制指针指向的对象。这样可能造成空间的浪费。因为指针指向的对象的复制不...
分类:
编程语言 时间:
2015-11-20 17:34:11
阅读次数:
193
转自:http://blog.csdn.net/xt_xiaotian/article/details/5714477 C++ 智能指针详解 一、简介 由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有.....
分类:
编程语言 时间:
2015-11-20 17:27:28
阅读次数:
229
一、简介由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::au...
分类:
编程语言 时间:
2015-11-20 12:44:46
阅读次数:
148
一、简介 由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::....
分类:
编程语言 时间:
2015-11-14 20:44:43
阅读次数:
261
map的键值的类型 -可以是自定的类型(对象、函数指针、智能指针、。。。) -但是有副作用-当自己定义的类型键值无法用系统自己提供的 进行排序的时候,会出现各种问题 -所以需要自己定义比较器来进行处理解决: -如果键值是对象类型 -可以自己在类中对 运算符进行重载 ...
分类:
其他好文 时间:
2015-11-08 20:41:06
阅读次数:
393
13.8 Write a smart pointer class. A smart pointer is a data type, usually implemented with templates, that simulates a pointer while also providing au...
分类:
其他好文 时间:
2015-11-02 15:16:48
阅读次数:
179
原理:利用局部变量生存期局限在当前函数或者当前代码块的原理,实现C++里AutoLock的概念,其实也就是智能指针的概念.利用局部变量在创建时执行按钮的setEnable为NO,在函数结束,且无block的情况下setEnable为YES.如果有block,需要调下blockIt函数,其实里面啥都不...
分类:
移动开发 时间:
2015-10-19 20:46:42
阅读次数:
258
首先看看下面的真实的指针与模板创建的智能指针之间的区别:1 class Top{...};2 class Middle : public Top{...};3 class Bottom : public Middle{...};4 Top * p1 = new Bottom();5 Top * p2...
分类:
其他好文 时间:
2015-10-18 18:35:36
阅读次数:
260
一、智能指针1.类类型对象,在其内部封装了一个普通指针。当智能指针对象因离开作用域而被析构时,其析构函数被执行,通过其内部封装的普通指针,销毁该指针的目标对象,避免内存泄露。2.为了表现出和普通指针一致的外观和行为,重载了解引用运算符(*)和间接成员访问运算符(->)函数,令其使用者可以将一个智能指...
分类:
其他好文 时间:
2015-10-15 22:17:41
阅读次数:
255
#pragma onceclass KRYPtrCount{public: KRYPtrCount() :shared_count(1), weak_count(0){} void addShared(){ shared_count += 1; } void addWeak(){ ...
分类:
其他好文 时间:
2015-10-15 22:05:36
阅读次数:
247