码迷,mamicode.com
首页 >  
搜索关键字:智能指针    ( 834个结果
c++11:智能指针
我们在程序运行的过程中,经常出现段错误、内存持续增大等,是C++显式内存管理存在的问题,主要归纳为以下几点:野指针:一些内存单元已经释放,但之前指向它的指针还在使用。重复释放:程序试图释放已经被释放过的内存单元。内存泄漏:没有释放不再使用的内存单元。缓冲区溢出:数组越界。不配对的new[]/dele...
分类:编程语言   时间:2014-11-28 20:02:28    阅读次数:308
对智能指针的一些理解
c++本身不提供自动内存回收机制,所以每次我们有new一个对象或者数组,我们都是时时刻刻提醒自己要记得去delete new出来的对象,那样岂不是非常烦人?而且就算你记得在析构函数中delete new出来的对象,也同样会造成很多问题,比如一个class里面有个指针,初始化的时候new了一块内存,然后class 有个对象a,再通过class b=a复制一份a,这样其实两个对象分别有一个指针指向ne...
分类:其他好文   时间:2014-11-26 19:09:12    阅读次数:132
SmartPointer_智能指针
动态内存C++中程序用堆来存储动态分配(dynamically allocate)的对象——即那些在程序运行时分配的对象。动态内存的生存期由程序控制,也就是当动态对象不再使用时,我们必须显示的销毁它们。But众所周知(王小波句式),正确的管理动态内存是非常棘手的。如果忘了释放内存,就会导致内存泄漏;...
分类:其他好文   时间:2014-11-26 18:47:08    阅读次数:251
effective C++ 读书笔记 条款17 以独立语句讲newed对象置入智能指针
// Test.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include //注意加这个头文件 using namespace std; class Widdget { }; int priority() { return 0; } /* 下面的函数可能造成内存泄露: 调用的时候如下:...
分类:编程语言   时间:2014-11-20 15:20:24    阅读次数:158
count_if,智能指针
//count_if //c++11vector vecint cnt = count_if(vec.begin(),vec.end(),[](int i){return i >=80;});6.常用的智能指针:a) Boost库提供了scoped_ptr/shared_ptrb) C++11内置了...
分类:其他好文   时间:2014-11-19 12:11:38    阅读次数:160
[017]以独立语句将newed对象置入智能指针
这一节也比较简单,先假设我们有如下的函数:int foo();void memFoo(shared_ptr pw, int foo);现在假设我们要调用memFoo函数:memFoo(new W, foo());但是这样写编译是通不过的,我们可以改造为:memFoo(shared_ptr(new W...
分类:其他好文   时间:2014-11-17 17:11:22    阅读次数:97
[015]在资源管理类中提供对原始资源的访问
引言资源管理类是防止资源泄漏的有力武器,但是许多APIs直接指涉资源,除非你发誓永不使用这样的APIs,否则只得绕过资源管理对象(resource-managing objects)直接访问原始资源(raw resources)。例如在条款13中引入了智能指针如auto_ptr或tr1::share...
分类:其他好文   时间:2014-11-17 15:39:43    阅读次数:124
[014]在资源管理类中小心copying行为
第一节 条款13中讲到“资源取得的时机便是初始化时机”并由此引出“以对象管理资源”的概念。通常情况下使用std中的auto_ptr(智能指针)和tr1::shared_ptr(引数智能指针)作为管理资源的对象。事实上,这种管理方法十分有效。但是,auto_ptr和tr1::shared_ptr只.....
分类:其他好文   时间:2014-11-17 15:25:48    阅读次数:179
STL 小结
看C++ STL一个月了,小结下这个阶段的学习所得;      容器是以class template完成;内存管理师由memory pool完成;算法是由function template完成;仿函数(函数对象)是一种将operation ( )重载了的class template;迭代器是泛型指针,也是种智能指针,将operator++、operator * 等指针习惯行为重载的class t...
分类:其他好文   时间:2014-11-16 16:00:02    阅读次数:209
关于C++ 智能指针的一点认识
背景:默认的c++拷贝与赋值构造函数实现的是值拷贝传递。当类的数据成员为指向堆上的指针时,值拷贝会使多个类的指针指向同一块内存。当其中一个类释放这块内存时,会照成其他类的这个指针空悬,从而引来风险。智能指针是用来解决这类问题的方法。它最终的目的是让多份指针安全地指向同一块内存。要做到这一点,这块被指...
分类:编程语言   时间:2014-11-09 19:20:37    阅读次数:172
834条   上一页 1 ... 67 68 69 70 71 ... 84 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!