C++基本类型
- bool, char, wchar_t(扩展字符集,如汉字和日语), short, int, long, float, double, long double.
- 使用double类型不会出错,且其计算代价想杜宇float是可忽略的;而float中隐式精度损失是不能忽视的。
- 代码不要出现机器相关的行为。如int的位数在程序中是个固定且已知的值,那样程序是不可移植的。
变量初始化
- 初始化不等价于赋值。因为赋值是擦除对象当前值并用新值代替。
- 内置类型,如果在函数体外定义,则初始化为0,函数体内则不初始化。
- 定义和声明,定义指为变量分配存储空间,还可以指定初始化值,so一个程序中定义有且只有一次;声明指向程序表明变量的类型和名字(用extern表明此变量在其他位置已经定义),不需要分配空间,所以声明可以有多次。so定义也可以认为是声明。
- 头文件用于声明而不是用于定义。因为头文件包含于多个源文件中(这样如果头文件中包含定义,则在源文件中非常可能命名同名变量出现错误),所以不应该包含变量或者函数的定义。除了,头文件中可以定义类、const对象和inline函数。
struct 和 class用来定义类的区别在于默认访问基本,struct–public,class– private。
枚举中,枚举成员的值可以是不唯一的。enum Points(point2d = 2, point2w, point3d = 3, point3w); // 合理
point2w默认初始化为3,与point3d相同引用
- 引用是别名,必须用于该引用同类型的对象初始化;
- const引用是指向const对象的引用,因为它仅仅是别名,所以值和地址都不可以改变。
- const引用可以绑定到不同但相关的类型的对象;而非const引用只能绑定到与该引用同类型的对象。
typedef名字
常被同于三种目的:
- 为了隐藏特定类型的实现,强调使用类型的目的;
- 允许一种类型用于多个目的,同样使得每次使用该类型的目的明确;
- 简化复杂的类型定义,使其更易理解。