条款01:视c++为一个语言联邦
《Effective C++》,久闻大名,幸得一见,都说c++程序员分两类,看过EffectiveC++的和没看过的,可见对此书评价之高,很少人能出其右。身为菜鸟,先看一遍,记记笔记,留着以后水平提高后回来批斗自己。
都说C++是难学易用的语言,难学是因为她具有多种编程范式,既能进行过程化编程(procedural),也能进行面向对象编程(object-oriented),也支持泛型编程(generic),甚至还有元编程(metaprogramming)。正是因为有如此强大的能力,才导致了C++的难学。当然,世上木有免费的午餐,要想人前显贵,就得背后受罪啊,要想学好c++,一定要下功夫。
废话少说,进入正题,条款01只是很简单的介绍,将C++分为了四大部分,让读者对C++的概况一目了然。
C++包括C,Object-Oriented C++,template C++,STL。这四个部分个有特色,共同组成了C++这一语言王国。
C:C语言是C++的基础C++就是从C发展而来,C语言已经存在了30多年,能如此的经久不衰,一说明C语言足够的优秀,她语法简单,语言轻巧灵活,而且高效。但C毕竟是面向过程的,还不具有面向对象的特性。
Object-Oriented C++:面向对象是C++实现的初衷,构造函数(constructor),封装(encapsulation),继承(inheritance),多态(polymorphism),虚函数(virtual function)。这都是Object-Oriented的基本特性,当然C++还有多重继承的特性。
Template C++:对此尚了解不多,不敢妄加评论。只能说这是一种新的编程范式,威力强大。
STL:基于Template范式编写的强大的C++库,容器(container),迭代器(iterator),算法(algorithm),函数对象(function object)是其基本构成方式。
总之,C++博大精深,要想高效编程,就要结合具体情况,选择C++中合适的那一部分。