本文是本系列文章的第二篇,讲述了整个数据结构课程要遵守的规则(单一继承树、使用泛型编程、只抛出异常不处理异常)及原因,并通过实验实现了整个数据结构库所依赖的基础设施,异常类族和智能指针以及顶层父类(规范动态内存申请结果)
分类:
其他好文 时间:
2018-05-12 18:30:05
阅读次数:
164
最近看代码,智能指针用的比较多,自己平时用的少,周末自己总结总结。方便后续使用。 std::shared_ptr大概总结有以下几点: (1) 智能指针主要的用途就是方便资源的管理,自动释放没有指针引用的资源。 (2) 使用引用计数来标识是否有多余指针指向该资源。(注意,shart_ptr本身指针会占 ...
分类:
其他好文 时间:
2018-05-12 11:14:20
阅读次数:
257
对于动态申请的内存,C++语言为我们提供了new和delete运算符, 而没有像java一样,提供一个完整的GC机制,因此对于我们申请的动态内存,我们需要时刻记得释放,且不能重复释放,释放后不能再去使用... 因此在使用时造成很多不便,且容易出现很多问题,一旦出问题就造成core dump,程序直接 ...
分类:
其他好文 时间:
2018-04-30 11:42:09
阅读次数:
275
一、智能指针的概念 智能指针是一个类,不是指针,智能指针在所包含的指针不再被使用时候会自动释放该所包含指针所占用的系统资源,而不用手动释放。 原理:智能指针封装了包含指针的AddRef()函数和Release()函数,且在该类不被需要的时候在析构函数里调用包含指针的Release()函数释放包含指针 ...
分类:
编程语言 时间:
2018-04-28 21:03:05
阅读次数:
177
shared_ptr和new的结合使用 ? 如果我们不初始化一个智能指针,它就会被初始化一个空指针。 ? 一个shared_ptr默认初始化为一个空指针。我们也可以使用new返回的指针来初始化一个shared_ptr: ? 接受指针参数的智能指针构造函数是explicit的。因此,我们不能将一个内置 ...
分类:
编程语言 时间:
2018-04-25 20:12:05
阅读次数:
253
C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理,该智能指针在C++11中已经被弃用,转而由unique_ptr替代, 那这次使用和实现,就具体讲一下auto_ptr被弃用的原因,(编译平台:Linux centos 7.0 编译器:gcc 4.8.5 ) 首先使 ...
分类:
其他好文 时间:
2018-04-23 00:04:42
阅读次数:
235
#include<bits/stdc++.h>using namespace std;void swap(shared_ptr<int>a,shared_ptr<int>b) { int t; t=*a,*a=*b,*b=t; }int main(){ /*auto_ptr; unique_ptr; ...
分类:
其他好文 时间:
2018-04-22 22:39:47
阅读次数:
184
(1)COM组件注册卸载与智能指针一COM组件注册和卸载1.Regsvr32.exe命令是用来对"Active控件"进行注册的命令格式注册 Regsvr32 路径/名称.dll 卸载 Regsvr32 /u 路径/名称.dll2.ATL制作出的简单对象是".dll"形式Visual Stduio在编译成这个dll时,对它自动
分类:
其他好文 时间:
2018-04-21 17:41:35
阅读次数:
111
1. 新类型 long long和unsigned long long; char16_t 和 char32_t; 新增原始字符串; 2. 统一的初始化 C++11扩大了用大括号括起的列表(初始化列表)的适用范围,使其可以用于所有内置类型和用户定义的类型(即类对象)。 使用初始化列表时,可添加 “= ...
分类:
编程语言 时间:
2018-04-15 00:03:21
阅读次数:
232
智能指针 在C++库中最重要的类模板之一 智能指针实际上是将指针封装在一个类里,通过对象来管理指针. STL中的智能指针auto_ptr 头文件: <memory> 生命周期结束时,自动摧毁指向的内存空间 不能指向堆数组(因为auto_ptr的析构函数删除指针用的是delete,而不是delete[ ...
分类:
编程语言 时间:
2018-04-11 21:46:42
阅读次数:
185