1)请简述智能指针原理,并实现一个简单的智能指针智能指针作用:管理别人的指针,主要特点:RAII(ResourceAcquisitionIsInitialization)资源分配即初始化,定义一个类来封装资源的分配和释放,在构造函数完成资源的分配和初始化,在析构函数完成资源的清理,可以保证资源的正..
分类:
编程语言 时间:
2016-07-20 16:20:56
阅读次数:
271
智能指针是行为类似于指针的类对象,单这种对象还有其他功能。本节介绍三个可帮助管理动态内存分配的智能指针类。先来看看需要哪些功能以及这些功能是如何实现的。请看下面的函数:void remodel(std::string & str){ std::string * ps = new std::strin ...
分类:
编程语言 时间:
2016-07-17 12:20:33
阅读次数:
226
Android手机操作系统既然是开源的操作系统。那么在具体的文件夹中就会存放着各种相关功能的开源代码。我们在使用的时候可以根据这些源代码进行相应的修改就能轻松的完成我们所需的功能。在这里大家就一起来看看Android智能 指针的相关源码解读以及应用方法。 在Android的源代码中,经常会看到形如: ...
分类:
移动开发 时间:
2016-07-15 13:19:22
阅读次数:
339
1. 智能指针背后的设计思想
我们先来看一个简单的例子:
void remodel(std::string & str)
{
std::string * ps = new std::string(str);
...
if (weird_thing())
throw exception();
str = *ps;
dele...
分类:
其他好文 时间:
2016-07-10 18:53:16
阅读次数:
266
动态内存与智能指针 在C++中, 动态内存用 new来分配空间并返回一个指向该对象的指针 用delete来销毁。 由于手动的对动态内存进行操作容易出现问题。所以新的标准库提供了两种智能指针。 智能指针的行为类似于常规指针。区别在于他负责自动释放所指对象。 shared_ptr : 允许多个指针指向同 ...
分类:
编程语言 时间:
2016-07-09 01:53:02
阅读次数:
206
c++ primer 的 textquery 例子,做了好几天。发现对入门c++基础是个很大检测,不像初看时,那么简单。 起码包含了几个知识点,智能指针,值类型智能指针,树的遍历(递归),构造和析构,多态,操作符重载。 贴出代码和一些自己体会。 共有2章完善这个 程序。前一个程序很简单,没什么好说。 ...
分类:
编程语言 时间:
2016-07-07 21:08:59
阅读次数:
303
1. shared_ptr 解析: shared_ptr是一种计数指针,当引用计数变为0时,shared_ptr所指向的对象将会被删除。举个例子,如下所示: 2. unique_ptr 解析: unique_ptr是定义在<memory>中的智能指针(smart pointer)。它持有对对象的独有 ...
分类:
编程语言 时间:
2016-07-07 19:55:42
阅读次数:
186
1. 智能指针的意义 (1)现代C++开发库中最重要的类模板之一 (2)C++中自动内存管理的主要手段 (3)能够在很大程度上避开内存相关的问题(如内存泄漏、内存的多次释放等) 2. STL中的智能指针 (1)auto_ptr智能指针 ①生命周期结束时,销毁指向的内存空间 ②只能用来管理单个动态创建 ...
分类:
其他好文 时间:
2016-07-02 13:05:55
阅读次数:
157
二.内存管理 mmap/munmap brk/sbrk malloc/free/calloc/realloc new/new[]/delete/delete[] STL内存管理Allocator 智能指针 1.认识各种不同的内存 代码区 全局区 局部区 堆区 实验1: 直观查看各个内存段。 /pro ...
分类:
其他好文 时间:
2016-07-01 06:34:45
阅读次数:
274
在OpenSceneGraph中,智能指针(Smart pointer)的概念指的是一种类的模板,它针对某一特定类型的对象(即Referenced类及其派生类)构建,提供了自己的管理模式,以避免因为用户使用new运算符创建对象实例之后,没有及时用delete运算符释放对象,而造成部分内存空间被浪费的 ...
分类:
其他好文 时间:
2016-06-27 13:54:04
阅读次数:
191