为了理解C++,可以将它分割为四个部分:
1.C 说到底C++是以C为基础的,区块、预处理器、内置数据类型、数组、指针等都来自C,但是C没有模板,没有异常,没有重载。 对于这个没有重载:重载是编译期行为,主要是通过name mangling来产生不同的汇编符号,让linker可以正确的link代码。C不 支持这个,于是只要发现函数同名就编译报错。不过C可以实现用函数指针模拟重载的效果,更改函数指针的值达到调用不同函 数的目的。
2.面向对象C++
构造函数和析构函数、封装、继承、多态、virtual函数(动态绑定)···等等。
3.Template C++
是C++泛型编程(generic programming)的一部分,它威力强大,相关考虑和设计弥漫了整个C++
4.STL
STL是个template程序库,但是非常特殊。有容器、迭代器、算法以及函数对象。
注意到这四个部分的高效编程守则并不一样!高效的C++编程守则视你使用C++的哪一个部分而具体确定