终于拿到《Effective C++》了,是侯捷翻译的,哈哈,首先说新版本的装订质量堪称一流啊,
用的是比较厚但很轻的那种纸,拿在手里就有一种很想读的欲望啊……
哈哈,今天先开个头,看了前面的导读之后,看条款一:视C++为一个语言联邦
大家都知道,C++一开始是在C的基础上加上了面向对象特性,甚至有的人就直接认为C++就是加了OPP的C语言,
这在n年以前好像应该是这样吧,但在近几年,C++逐渐增加了新的特性,大的方面就是Expresion(异常)的相
关问题、模板(template)、以及STL的引进。在后面的一些条款中应该有涉及。现在的C++同时支持过程形式、
面向对象形式、函数形式、泛型形式、元编程形式等,简直太niubility~\(≧▽≦)/~啦啦啦。因此在这里最简
单的就是接受这些,并”将C++视为一个由相关语言组成的联邦而非单一语言“在C++的四个次语言中分别遵守相
应的规则:
C(C part of C++):按照C的高效编程方式就行了,比如对于内置类型来说用值传递(pass by value)比用
引用传递(pass-by-reference)高效;
Object-Oriented C++: 这部分是oop理念的直接体现,主要涉及数据的封装、继承、多态、虚函数……等等,
那就按照oop去做啦,这时候采用引用传递(pass-by-reference-const)就往往比较好(原因是类一般是用户定
义的数据类型,有用户自己定义的构造和析构函数);
Template C++:这可是一大进步啊,这使得各种代码的通用性进一步加强,省了老多事。但这个也是跟oop很相
关的(如类模板),所以在参数传递着块要用引用传递啦;
STL(stand template library):虽然是template的库,但是为了使得各种数据结构在使用时不相互依赖,这玩
意还是没有用到类的继承等概念的,很多东西都是用C的指针弄出来的,当然随C了,用值传递吧~