《C++设计新思维》评价和勘误及问题

来源:互联网 发布:电子音乐贺卡制作软件 编辑:程序博客网 时间:2024/04/29 12:07

C++设计新思维》评价和勘误及问题

Advanced C++ Design Generic Programming and Design Patterns Applied的中译本

Andrei Alexandrescu   侯捷 於春景译 华中科技大学出版社

 

 

 

这本书后面时间的缘故,已经没有认真,因此本文章仅大致作为记录,谢绝参考!

 

 

 

评价:书的内在是一本好书,讲了很多的设计策略和如何使用模板来进行设计。但是,书中的表达方式我就不敢恭维了。侯捷,居然还算是一个名作家,不管是他翻译还是审校,都有不可推卸的责任:书中到处都有不符合语法规则的表达,到处都是不通顺的语句。不过,他好像还对此非常自豪,我呸!我的建议是:看看《人月神话》的翻译,侯捷就该回去学学小学生汉语。

 

 

 

因为下面的原因,里面的内容不一定准确和完整:

1、 最前面的3个章节看得很早;

2、 最后面的4个章节看得很匆忙,因为没时间了,图书馆的书,时间到了,要还;

3、 中间有很多地方看得不够认真,因为需要的时候可以再查。

 

 

 

勘误部分

P12 1.6节:typedef WidgetManager< PrototypeCreator >  MyWidgetManager;中模板PrototypeCreator没有参数;

P13 1.7节:Policies只能用来被继承(保护析构函数)

P14 1.9节:threading model(多线程模型)->thread model(线程模型)

      实作-> 实现

P18 ExtendWidgetclass -> ExtendedWidgetclass

P20降低相依性 ->见地依赖性

P20因应设计的多样性 ->考虑/兼顾设计的多样性

P21 Line8:容器 -> 协调器

P21 Reverse Line1:更动 -> 变化

P23外覆类 ->包装类

P24 Reverse Line1:端视 -> 而视

P29 Reverse Line9:才知道 -> 就已经知道

P29 Reverse Line8:泛形 -> 泛型

P32 Line4:多载化(重载) -> 重载

P34 Reverse Line4:模板具现 -> 模板实例化

P43 Line10:删除“isStdFloat||

P37 const可以两次,但reference不允许 P43

P44 Line16:删除“这玩意儿”

P45 Line14last—first -> last – first

P43 Reverse Line2 isPrimitiveP45 Reverse Line1718 isStdStandard都没有,并且表达的东西应该一致

P46 Line6:删除“Int2Type<true>

P46 Line16:缺少参数result

P48 Line5:裁制 -> 定制

P74 Line6 MuEventHandler -> WidgetEventHandler

P77Line4~6:逻辑

P80 Reverse Line14Reverse Line16array(译注:基类是vector)错误

P91 Line12polymorphic错误

P100 Line8:“虚线”没有

P103 Reverse Line6:“Windows -> “windows”

P142 Line5~7 P143 Reverse Line2~3alloc -> malloc

P268 Reverse Line22:增加一个参数class TypesLhs

P278 Reverse Line18:增加“class

 

 

 

 

 

 

问题部分

P7无法特化结构指什么

      模板内定义成员,成员未其子类,则产生无限循环(类模板不能有非指针成员?)

P15提供一个名为Lock的内部型别

使用:typename ThreadingModel<SmartPtr>::Lock guard(*this)

P18 assignment操作符 Exceptional C++条款41

P21型别转型:构造()和操作符()都有时用哪一个

P25template<> struct CompileTimeChecker<flase>{};

      -> template<> struct CompileTimeChecker<true>{};

(整体实现,局部特化)对应(整体无实现,局部特化)

P29 Line5:无具名的命名空间

P35 Line4:省屏中选

P42 Line10template<class U,class V>

                    Struct PToMTraits<U,V::*>

                    -> template<class U,class V>

                    Struct PToMTraits<U::*>

P43P44:代码未反应排除references to references 未使用isReference

P78Pimpl手法 sutter2000 exceptional C++

 

 

 

C++程序库:STLBoostLokiACE

bykangtian0


原创粉丝点击