一、自己习惯C++
1、视C++为一个语言联邦
C++是一个多重泛型编程语言(multiparadigm programming language),一个同时支持过程形式(procedural)、面向对象形式(object-orientd)、函数形式(functional)、泛型形式(generic)、元编程形式(metaprogramming)的语言。
理解C++,需要认识其四个次语言:
C:C++以C为基础。区块(block)、语句(statements)、预处理器(preprocessor)、内置数据类型(built-in data types)、数组(arrays)、指针(pointers)等。
Object-Oriented C++:C with Classes所诉求的。classes(包括构造函数和析构函数),封装(encapsulation)、继承(inheritance)、duotai (polymorphism)、virtual函数(动态绑定)...等等。
Template C++:泛型编程(generic programming)部分.
STL:temp;ate程序库,它对容器(containers)、迭代器(iterators)、算法(algorithms)以及函数对象(funtion object)的规约极佳的紧密配合与协调。
2、尽量以const,enum,inline替换#define
尽量使用编译器处理,不要使用预处理器:
#define ASPECT_RATIO 1.653从未被编译器看见,它在预处理阶段会被替换。所使用的名称可能并未进入记号表(symbol table)。
解决方法:使用一个常量替换上述的宏(#define):
const double AspectRatio = 1.653;
常量替换的两种特殊情况:
将指针声明为const:
const char* con