类型是所有程序的基础。类型告诉我们数据代表什么意思以及可以对数据执行哪些操作。
C++中对类型的支持是非常广泛的:语言自身定义了一组基础类型和修改已有类型的方法,还提供了一组特征用于自定义类型。
2.1基本内置类型
wchar_t类型用于扩展字符,比如汉字和日语,这些字符集中的一些字符不能用单个char表示。
整型:在大多数机器上,使用int类型进行整型计算不易出错。
浮点型:使用double类型基本上不会有错。
2.2字面值常量
只有内置类型存在字面值。
定义长整型时,应使用大写字母L,小写字母l容易和1混淆。
两个相邻的仅由空格、制表符或换行符分开的字符串字面值,可连接成一个新的字符串字面值。这使得多行书写字符串字面值变得简单。
在一行的末尾加一个反斜线符号可将此行和下一行当做同一行处理。
2.3变量
C++两种表达式:左值(可出现在赋值语句左边和右边)、右值(只出现在赋值的右边)
对象是内存中具有类型的区域。
标识符不能包含两个连续的下划线,也不能以下划线开头后面紧跟一个大写字母。
在C++中初始化和赋值是两种不同的操作。
建议每个内置类型的对象都要初始化。
只有当extern声明位于函数外部时,在可以含有初始化式。
任何在多个文件中使用的变量都需要有与定义分离的声明。在这种情况下,一个文件包含变量的定义,使用该变量的其他文件则包含该变量的声明。
通常把一个对象定义在它首次使用的地方是一个很好的方法。
2.4const限定符
非const变量默认为extern。要使const变量能够在其他文件中访问,必须显式的指定它为extern。
2.5引用
const引用是指向const对象的引用。
将普通引用绑定到const对象是不合法的。
const引用可以初始化为不同类型的对象或者初始化为初值。
2.6 typedef名字
隐藏特定类型实现,强调使用类型的目的
简化复杂的类型定义,使其更易理解
允许一种类型用于多个目的,同时使得每次使用该类型的目的明确
2.7枚举
枚举类型的对象的初始化或赋值,只能通过其枚举成员或者同一枚举类型的其他对象类进行。
2.8类类型
编程新手经常会忘记类定义后面的分号,这是个很普遍的错误。
2.9编写自己的头文件
头文件一般包含类的定义、extern变量的声明和函数的声明。
因为有文件包含在多个源文件中,所以不应该含有变量或函数的定义。
头文件可以定义类、值在编译时就已知道的const对象和inline函数。
我们必须保证多次包含同一文件不会引起该头文件定义的类和对象被多次定义。(使用预处理器定义头文件保护符)
为了避免名字冲突,预处理器变量经常用全大写字母表示。