C++11
Seven17000
与其临渊羡鱼,不如退而结网。
展开
-
C++11特性:智能指针介绍
简介在C++98标准里面就已经有了智能指针的概念,它是把指针封装成为了一个类。这层封装让指针像是一个对象,这个对象的行为像一个指针。它的作用就是为了实现对指针的生命周期的管理。例如下面代码DataType *T_ptr = new DataType(); ... ... delete T_ptr; T_ptr = NULL;这段代码的后两句是用来结束掉指针T_ptr的声明周期,但是如果代码量大了之后原创 2017-05-02 22:34:13 · 548 阅读 · 0 评论 -
C++11特性:auto关键字与基于范围的for循环
autoauto关键词在c++98中就有过,用来定义变量为自动生命周期,完全是鸡肋,因为不用auto变量本来就是自动生命周期啊,所以c++11中,auto的用法改变了,简单来说它的作用就是声明变量时可以根据变量类型自动推断类型。类似于java中的var。 例如int a = 0;//auto只能识别初始化的变量。 auto b = a;//b被推断为int。但是auto的出现是为了解决一些变量定义原创 2017-04-27 18:52:54 · 1126 阅读 · 0 评论 -
C++11特性:右值引用与move语义
右值引用右值引用是C++11中的一个重要特性,它的出现解决了很多C++历史遗留问题。其总结来说可以说是解决了栈中对象的所有权的转移问题。首先右值是从C语言设计时就有的概念。不严格的来说,左值对应变量的存储位置,而右值对应变量的值本身。C++中右值可以被赋值给左值或者绑定到引用。类的右值是一个临时对象,如果没有被绑定到引用,在表达式结束时就会被废弃。于是我们可以在右值被废弃之前,移走它的资源进行废物利原创 2017-04-26 22:42:15 · 1048 阅读 · 0 评论