类型别名
类型别名是一个名字,某种类型的同义词,可以让复杂的类型名字变得简单明了、易于理解和使用传统方法是使用关键字typedef。
别名声明
C++11规定了一种新的方法,使用别名声明来定义类型别名,这种方法使用关键字using。
using SI= sALES_ITEM;// SI是Sales_item的同义词
指针、常量和类型别名
auto类型说明符
C++11新标准引入了auto类型说明符,可以让编译器替我们去分析表达式所属的类型。使用auto定义变量必须要有初始值。
auto可以在一条语句中声明多个变量,但是语句中所有变量的初始基本数据类型必须一样。
复合类型、常量和auto
编译器推断出来的auto类型和初始类型并不会完全一样,编译器会适当地改变结果使其更符合初始化规则
1.对于引用,编译器会以引用对象的类型作为auto类型。
2.auto一般会忽略顶层const,保留底层const
decltype类型指示数
选择并返回操作数的数据类型,编译器分析表达式并得到它的类型,不实际计算表达式的值。
如果decltype使用的表达式一个变量,则返回该变量的类型,包括(顶层const和引用在内)。
对于decltype所用的表达式来说,如果使用的是一个不加括号的变量,则得到的结果就是该变量的类型,如果给变量加上一层括号,就会得到引用类型。