智能指针模板类 智能指针是行为类似于指针的类对象,但这种对象还有其他功能。本文章介绍三个可帮助管理动态内存分配的只能指针模板。先来看需要哪些功能以及这些功能是如何实现的。请看下面的函数 void remodel(std::string & str) { std::string *ps = new s ...
分类:
编程语言 时间:
2017-10-04 23:57:29
阅读次数:
427
类比c++来学习! 1.在java 中变量不持有对象,变量持有的是对象的引用,可以把变量看做c++中的只能指针,自动管理内存 需要手动初始化(否则就是空指针!) 2.final 相当于c++中的const java中的嵌套类: 1.静态嵌套类: 类可以获取静态嵌套类中变量和方法的使用权 2.内部类 ...
分类:
编程语言 时间:
2017-09-14 21:53:26
阅读次数:
197
1.以对象管理资源 把资源放进对象内,可以依赖C++的析构函数自动调用机制,确保资源被释放 2.在资源管理类中消息copying行为 3.在资源管理类中提供对原始资源的访问 4.成对使用new和delete时要采取相同形式 5.以独立语句将newed对象置入只能指针 如果不这样做,一旦异常被抛出,有 ...
分类:
编程语言 时间:
2016-05-13 11:04:59
阅读次数:
146
#include
using namespace std;template//引用计数的只能指针
class auto_ptr_
{
public:
auto_ptr_(Type *t = NULL):ptr(t), count(1)
{
}
auto_ptr_(const auto_ptr_& at)...
分类:
编程语言 时间:
2015-06-20 09:12:08
阅读次数:
136
条款12: 以对象管理资源 两种只能指针: std:auto_ptr当使用copy操作室,原先的智能指针指向为nullstd:tr1:share_ptr spi();当可以多个指向同样的地址,但是当delete是会进行根据指向改地址的指针数量是否要delete这块内存条款13 在资源管理中小心cop...
分类:
编程语言 时间:
2015-05-09 23:23:57
阅读次数:
227
在effective C++经常会提到智能指针,这里对shared_ptr进行一个总结:
1 简要介绍用法
智能指针主要是用于资源管理,当申请一个资源的时候为了保证在离开控制流的时候对应资源应该得到相应的释放,这个时候如果资源对应一个类,在构造类的时候进行资源的分配(也就是书中经常提到的Resource Acquisition Is Initialization RAII),在对象离开作用域...
分类:
其他好文 时间:
2015-01-13 15:59:01
阅读次数:
298
weak_ptr示例/*// 使用shred_ptr的主要原因就是避免关注指针指向的资源// 只能指针将自动释放与不再需要的对象的相关资源// 但是某些情况下,这种却不是我们需要的。// 比如 循环引用.两个对象都引用对方。// 又或者 分享一个对象 但是不占有该对象/...
分类:
编程语言 时间:
2014-08-31 18:35:21
阅读次数:
261
内存管理一直是令C++程序员最头疼的工作,C++继承了C那高效而又灵活的指针,使用起来稍微不小心就会导致内存泄露、野指针、越界访问等访问。虽然C++标准提供了只能指针std::auto_ptr,但是并没有解决所有问题。boost的smart_ptr库是对C++98标准的绝佳补充。它提供了六种智能.....
分类:
其他好文 时间:
2014-08-09 18:41:18
阅读次数:
386
1. 为什么要智能指针?由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。但是有时候可能程序员会忘记delete,也可能是因为流程太复杂,最终没有delte,也可能是因为异常的存在,导致程序过早的退出,没有执行delete。用只能指针可以有效的解决这些问题。std:...
分类:
其他好文 时间:
2014-07-07 19:37:10
阅读次数:
323