八月 5
三章Library Types

这一章似乎很泛泛,从标准库中拿出一个典型的类型进行了一些简单的介绍和使用说明。Lippman似乎希望我们通过这几个例子了解库类型的基本特征和使用。这很好,首先给了大家一个初步的印象,库类型种类多了去了,Lippman在这里提到了很多共性的东西。而且把基本类型和库类型区分了开来。

四版的章节内容安排变化很大,而且整整比三版少了近300页。从目前看过的部分来看,可读性更强,更注重循序渐进和明确学习层次。不过具体的评价,应该在全部看过之后才能有个结论。

因为这章的目的就是泛泛的介绍,给人以印象,所以挖掘的点不是很多。

for Compatibility with c, string literals are not the same type as the standard libary string type.

这点其实我很清楚,字面上的字符串常量是一个char型的数组,而string是作为一个类存在的。但是使用的时候就从来没有注意考虑过两者的区别。虽然很少因为这个出错,但毕竟属于上一章提到的,属于不确定的操作,正确只是因为偶然。举个例子在一些数据库操作的时候,如果字段类型为text或者string,如果要写入的话,可能必须要求是对应的string类型,而不能写“……”样式的一个常量进入,否则会出现数据类型错误异常。要好好考虑这一点,总结一下哪些情况绝对不能混淆。或者为了保证一直正确使用,彻底分开使用两者,assign的时候用string的构造函数。

Any variables used to store the return value of string::size() ought to be of type string::size_type.

惭愧,我大部分情况都是用int 声明存贮字符串长度的变量。虽然很少用string保存>32767个字节的数据,但是一个文件很容易达到这个数量级,所以良好的习惯可以确保程序的正确性。以后注意。

再有的东西,像本章提到的vector和迭代器都是一个入门级的介绍,在后面章节才会详细叙述,而bitset这个东西也没有什么特别需要注意的地方了。

Trackback: http://tb.donews.net/TrackBack.aspx?PostId=495241