《Essential C++中文版》9月20日到手, 今天9月23刚读完第一遍, 谈点看法
陈硕 2001-09-23 09:41:38 我是北京某大学的在校本科生,现大二,熟悉C语言,零零散散看过一些C++的书。
《Essential C++》我刚刚看完第一遍,下面谈谈我的一点粗浅的看法:
本书绝对堪称C++入门经典,但限于篇幅,很多东西只是稍微提了一下,往往出现“如果想要取得XXXXX 的
更广泛讨论,请参见[LIPPMAN98]xx章xxx节,以及[STROUSTRUP97]xx章。”字样。
书中有几处笔误,都出现在代码中,正文中我还没有发现明显错误,除了下面这一处:P.203 第10行,“
[STROUPSTRUP97]”,中间多了一个“P”,应该是“[STROUSTRUP97]”。
比较奇怪的是P.80~81,集中出现了三处笔误(P.74 / P.71也各有一处):
第一处: P.80 顶部
while ( it != ilist.end() )
if ( *it >= ival )
{
ilist.insert( it, ival );
break;
}
if ( it == ilist.end() )
ilist.push_back( ival );
因在while()中,it未自增,似乎应改为:
while ( it != ilist.end() )
if ( *it >= ival )
{
ilist.insert( it, ival );
break;
}
else ++it; /////增加此行
if ( it == ilist.end() )
ilist.push_back( ival );
第二处: P.80 第二个"●"处:
void insert( iterator1 position, iterator2 first, iterator 2 last )可在position....
^^^ ^^^ ^^^
这里的iterator1 / iterator2疑为 iterator 之谬 .
第三处 P.81 第5行,注释中
// it2: 其所指元素将是最后一个被删除元素的下一位置
似乎应改为
// it2: 其所指元素将是最后一个被删除的元素
因为前面数行说“.....可抹除 [first, last] 范围内的元素。”数学中,方括号“[]”
表示区间时,应包含区间端点,所以it2所指的元素也该被删除,不知我这样理解对不对?
书是好书,价格也能接受,比起其他乱七八糟的《XXX入门到精通》好多了。只是有些问题未能深入探讨,
须辅以《C++ Primer 3/e》或《The C++ Programming Language 3/e》。
等《The C++ Programming Language 3/e》到手后,打算再读一遍《Essential C++中文版》.