从C++ primer中文第五版 2.5节 处理类型 处开始
1、类型别名:是某种类型的同义词。声明类型别名的两种方法:使用关键字typedef和使用关键字using。如typedef double wages; using SI = Sales_item;
2、auto类型说明符
定义变量时必须有初始值,因为编译器会通过初始值推断变量的类型
auto中声明多个变量时,其基本数据类型必须一致;如auto i = 0,j = 3.14;是错误的
编译器推断规则:引用使用的是期引用的对象;一般会忽略掉顶层const,不会忽略底层const,所以如果希望推断出的auto类型是一个顶层const,则需要明确指出,就像这样:const auto f = ci’;
3、decltype类型指示符:从表达式的类型推断出要定义的变量的类型,但是不想用该表达式的值初始化变量。
4、decltype
作用是返回操作数的数据类型
引用在decltype处结果仍为引用,而不是所指对象的类型,如,int &c = i;decltype(c) z;//第二句错误,想想为什么?
解引用将得到引用类型,而不是指针所指对象的类型
decltype((some)),两个括号下,结果永远是引用
5、结构体,关键字为struct,在声明时,遵循struct S_Name { /******/} ; , 花括号后面的分号必不可少。此后,就可以使用S_Name来定义其他类型了。
6、C++11新标准规定,可以为数据成员提供一个类内初始值
7、为了确保各个文件中类的定义一致,类通常被定义在头文件中,而且类所在头文件的名字应该与类的名字一样
第二章结束了。