类型别名
关键字 :typedef 和 using
用法 : typedef double wage;或 using wage = double(二者作用相同)
wage num;//num 的类型为doubleauto类型说明符
auto 根据赋值语句自行推断
用法 int i = 3;
auto j = i; //j的类型为int
int &m =i;//m类型为int&
auto n = m;//n 类型为int
auto &k = n;//k类型为int&
注意:auto推断过程中会忽略顶层const和引用- decltype类型指示符
decltype根据表达式推断出类型,但该表达式不是赋值语句
用法 int i = 3;
decltype(i) j = i;//j类型为int
int &m = i;
decltype(m) n = i;//n类型为int& 引用必赋值
decltype((i)) k = i;//k的类型为int&
注意:decltype推断过程中不会忽略引用,decltype((variable))的结果永远是引用。
补充:顶层const表示任意的对象(变量)是常量,底层const 表示指针所指对象为一个常量,一般对象是顶层的const是,引用的const总是底层const,指针即有顶层const也有顶层const。 非const 引用相当于一个 顶层const的指针(个人理解),所以必须在定义时赋值。