C++Primer再读读书笔记:第一、二章(二)
不能修改。非const引用只能绑定到与该引用同类型的对象,const引用可以绑定到不同但相关的类型的对象或者绑定右值。
13、typedef名字:用来定义类型的同义词。有一下三个目的:
为了隐藏特定类型的实现,强调使用类型的目的
简化复杂的类型定义,使其更易理解
允许一种类型用于多种目的,同时使得每次使用该类型的目的明确
14、枚举(enumeration):定义整数常量集,并将他们聚集成组。
1.定义和初始化:枚举的定义包括关键字enum,其后是一个枚举类型名。默认第一个枚举成员赋值为0,后面的每个比前一个大1.
[cpp]
//input is 0, output is 1, and append is 2
enum open_modes {input,output,append};
2.枚举成员是常量:用来初始化枚举成员的值必须是一个常量表达式,
[cpp]
//shape is 1, sphere is 2, cylinder is 3, polygon is 4
enum Forms {shape = 1, sphere, cylinder, polygon};
Forms中shape赋值为1,其他的是隐式初始化依次为2,3,4
3.每个enum都定义一种唯一类型
15、头文件:
头文件用于声明而不是用于定义(头文件包含在多个源文件中,所以不应该含有变量或者函数的定义,有三个例外:头文件可以定义类、值在编译时就已知的const对象和inline函数)
一些const对象定义在头文件中
16、于处理器的简单介绍
1.头文件经常需要其他头文件
2.避免多重包含:预处理器变量的名字在程序中必须是唯一的。任何与预处理器变量相匹配的名字使用都关联到该预处理器变量。
预处理器变量有两种状态:已定义和未定义。可以使用下面这段代码来预防多次包含:
[cpp]
#ifndef __CPLUSPLUSPRIMER_H__
#define __CPLUSPLUSPRIMER_H__
//....
#endif //__CPLUSPLUSPRIMER_H__