1.视C++为一个语言联邦
为了理解C++ ,必须认识其主要的次语言。幸运的是总共只有四个:
(1)C ,说到底C++ 仍是以C 为基础。blocks,statements,preprocessor,built-in data types,arrays,pointers
(2)Object-Oriented C++。这部分也就是C with Classes 所诉求的
(3)Template C++。这是C++ 的泛型编程(generic programming) 部分 ,是大多数程序员经验最少的部分。
(4)STL. STL 是个template 程序库
2.尽量以const, enum, inline 替换#define
(1)因为#define不被视为语言的一部分。
#define ASPECT RATIO 1.653 改为:const double AspectRatio = 1.653: //大写名称通常用于宏,
使用常量可能比使用#define 导致较小量的码,
3.尽可能使用const
(1)const它允许你指定一个语义约束,而编译器会强制实施这项约束。
有关指针的const,指针自身,指针所指物体,两者都(或都不)是const
如:
char greeting[] = "Hello";
char* p = greeting; //非const指针,非const数据
const char* p = greeting; //非const指针,const数据
char*const p = greeting; //const指针,非const数据
const char* const p = greeting; //const指针,const数据
通常,键字const 出现在星号左边,表示被指物是常量
出现在星号右边,表示指针自身是常量 (P18).