我们先来解释一下什么叫智能指针?
智能指针是利用RAII(在对象的构造函数中执行资源的获取(指针的初始化),在析构函数中释放(delete 指针):这种技法把它称之为RAII(Resource Acquisition Is Initialization:资源获取即初始化))来管理资源。
其本质思想是:将堆对象的生存期用栈对象(智能指针)来管理。也就是当new一个堆对象的时候,立刻用智能指针来接...
分类:
其他好文 时间:
2016-01-30 13:57:03
阅读次数:
207
指针数组在C语言和C++语言中,数组元素全为指针的数组称为指针数组。一维指针数组的定义形式为:“类型名*数组标识符[数组长度]”。例如,一个一维指针数组的定义:int*ptr_array[10]。含义指针数组中的每一个元素均为指针,即有诸形如“*ptr_array[i]”的指针。指针数组中的元..
分类:
编程语言 时间:
2016-01-22 03:22:34
阅读次数:
210
一:类型别名是一个名字,它是某种类型的定价。有两种方法定义类型别名: 1.使用typedef关键字,如: typedef int *Int_Ptr Int_Ptr p=nullptr; //Int_Ptr是一个int指针类型,这里定义了一个int型指针P 2.使...
分类:
其他好文 时间:
2016-01-17 20:12:31
阅读次数:
302
// vc下的智能指针,重点在于拥有权的转移#include using namespace std;templateclass Autoptr{public: Autoptr(int *p = NULL) :ptr(p), owns(ptr != NULL) {} Autoptr(const Au...
分类:
编程语言 时间:
2016-01-16 22:27:25
阅读次数:
230
“野指针”不是NULL指针,是指向垃圾内存的指针。使用if(ptr != NULL)并不能起到防错的作用“野指针”的成因主要有三种: #1 指针变量没有被初始化。 #2 指针ptr被free或delete之后,没有置为NULL,让人误以为ptr是个合法的指针。 #3 指针操作超越了变量的作用范围。源...
分类:
其他好文 时间:
2016-01-14 15:43:31
阅读次数:
173
5.2 Smart Pointer(智能指针)shared_ptr的aliasing构造函数,接受一个shared pointer和一个raw pointer。它允许你掌握一个事实:某对象拥有另一个对象。例如:struct X{ int a;};shared_ptr px(new X);sh...
分类:
编程语言 时间:
2016-01-04 18:14:41
阅读次数:
158
1. const int *ptr = NULL; int const *ptr = NULL;1) 表示指向符号常量的指针变量,指针变量本身并非const所以可以指向其他变量。2) const 的作用可以看作是“禁止通过*ptr"来改变被ptr指向的变量的值,但被指向的变量 其本身能否改变需要看....
分类:
其他好文 时间:
2016-01-03 17:02:19
阅读次数:
131
//#pragmaonce
//#include<iostream>
//#include<string>
//Singleton.hpp
//#include<list>
//#include<assert.h>
//#include<stdarg.h>
//usingnamespacestd;
//structBlockInfo
//{
// void*_ptr;
// string_file;
// int_line;
// BlockInfo..
分类:
其他好文 时间:
2015-12-29 17:49:02
阅读次数:
220
//#pragmaonce
//#include<iostream>
//#include<string>
//#include<list>
//#include<assert.h>
//usingnamespacestd;
//structBlockInfo
//{
// void*_ptr;
// string_file;
// int_line;
// BlockInfo(void*ptr,constchar*file,intline)
// :_ptr..
分类:
其他好文 时间:
2015-12-29 06:28:02
阅读次数:
205
lambda表达式是C++11新引入的东西,给我们带来了很多的方便,使得代码简洁明了。但是当我们把unique_ptr和lambda表达式结合的时候,错误就往往会出现,而且是致命的。直接看看下面的代码:#include "stdafx.h"
#include
#include
#include class Message {
public:...
分类:
编程语言 时间:
2015-12-28 22:08:58
阅读次数:
978