程序员的任务就是将计算表达出来,并且做到:
- 正确
- 简单
- 高效
目前的手段主要是把一个大的计算任务划分为许多小任务。这一技术主要包括两类方法:
- 抽象:即不需要了解的程序具体实现细节被隐藏在相应的接口之后。
- 分治:即把一个大问题分为几个小问题分别解决。
除了个别情况(例如0和1),程序中应该尽量少用字面常量,而是尽可能地使用符号常量。在代码中,这种不能被直接识别的字面常量通常被戏称为魔术常量。
C++98不支持constexpr,大家用const替代。
需要注意的是,表达式a<b<c表示(a<b)<c,即true<c或者false<c。
增量表达式至少有三种形式:
++a
a+=1
a=a+1
哪种方式比较好?建议使用第一种方式,它直观地表示了增量的含义。
记号type(value)和type{value}表示“将value转换为type类型,就像用值value来初始化type类型的变量一样”。使用type{value}可以避免窄化转换,而type(value)不能。
double d=2.5;
int i=2;
double d2=d/i; //d2==1.25
int i2=d/i; //i2==1
int i3{d/i}; //错误:double→int可能是窄化转换
d2=d/i; //d2==1.25
i2=d/i; //i2==1