0. “hello world”
向先驱致敬,我们首先学习C++版本的“hello world”程序。
需求:想控制台输出“hello world”字符串。
C++是基于对象的。从对象的观点看,要有一个对象,用于打印该字符串。所以该需求可以实现为如下执行序列:
加上C++要求的必需构造:
然后是实现greetings类,并且把它置于:
相对wikipedia上的实现,这个版本要复杂的多,但是其中体现了解决问题的一般思路:
1. 分解问题为具体的执行序列(如何把大象装进冰箱),抽象出接口
2. 使用C++的符号描述该实现
3. 实现接口
在深入探讨如何解决问题之前,我们先以另一种角度温习一下C++。
1. 数学和逻辑类型
物理世界的基础是数学和逻辑,C++当然有着完整的数学和逻辑运算支持。为了支持不同的宽度和精度要求,C++有八种整数类型以及两种浮点数类型:
- char 和 unsigned char
- short 和 unsigned short
- int 和 unsigned int
- long 和 unsigned int
- float
- double
四则运算之外(+, -,*,/),整数类型还支持求余操作(%)。
C++逻辑常量true和false以及三种逻辑操作:
- and
- or
- not
特别约定1:对于整数类型来说,除操作返回的还是整数类型,那么除相当于求商,没有舍入。
特别约定2:如果数学运算中类型不一致,那么较低宽度