C++类型处理:typedef decltype
类型别名是某种类型的同义词 有两种方法用于定义类型别名,传统方法是使用 typedef : typedef double wages; //wages是double的同义词 typedef wages base, *p //base是double的同义词,p是double*的同义词 新标准规定了一种新的方法,使用 别名声明 来定义类型别名: using SI = Sales_item; //SI是Sales_item的同义词 把等号左侧的名字规定成等号右侧类型的别名 类型别名和类型的名字等价,只要是类型的名字能出现的地方,就能使用类型别名 SI item; //等价于Sales_item item; typedef char *pstring; const pstring cstr = 0; //cstr是指向char的常量指针 const psrting *ps; //ps是指向“指向char的常量指针”的指针 我们可能错误的尝试替换成typedef前的样子: const char *cstr = 0; //这是const pstring cstr的错误理解 const pstring cstr表示cstr是指向char的 常量指针 ,而不是脑内“翻译”得到的const char *cstr(表示指向 常量char 的指针) auto 我们常常需要把表达式的值赋给变量