 |
再来 15.4.3 中有一段 为了对循环子所指的对象调用函数,我们可以使用灵巧指针循环子的通常方法)或使用被称为c u r r e n t ( )的函数,该函数看上去和灵巧指针相同,因为它返回一个指向当前对象的指针,但它们是不同的,因为灵巧指针执行逆向引用的外部层次(见第11章)。最后,operator int()指出,是否我们已处在表的尾部和是否允许在条件语句中使用该循环子。
整个就一英文文盲翻译的! 特别别扭而且有错. "因为灵巧指针执行逆向引用的外部层次"我看没几个人看得懂,实际上译者是在逐字翻译. 将extra level直接翻译成外部层次.稍思考一下就知道是: 因为smart pointer额外地执行了dereferencing. (我看这些关键字不翻译成中文最好).
"是否我们已处在表的尾部和是否允许在条件语句中使用该循环子."这句话可能勉强可懂,但是很显然whether or not并没有管到后面那半句. 我想应该是: operator int指出是否我们处在链表尾,这样允许我们将iterator用于条件语句中.
发布于2005-10-8 14:53:33
(0)回应
有0人认为此评论有用, 有0人认为没用,
您认为呢?
|
 |
我有时觉得有些句段特别拗口,我想自己可能是初学者,看不懂很正常,但当我用英文版对照阅读时发现很多时候并不是我不理解. 我随便举几个例子: ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13.4.3 非自动继承的函数 倒数第二段: 在derived 中,operator=( ) 也被综合为新函数,使用成员函数赋值,因为这个函数在新类中不显式地写出。 看得莫名奇妙,什么叫"成员函数赋值"? 一看英文版,原来是"memberwise assignment",再用此搜索一下,可以找到相应的解释,如果用"成员函数赋值"搜索整个中文版文件,你会发现就这一处有,怎么回事?中文版里难道没有吗,找到相应章节11.5末尾,原来这里翻译为"成员赋值"!! 我怀疑翻译者根本没有通读整个文章并深该理解它.很显然它没有将13.4.3中的memberwise assignment当成是一个知识点,随意翻译了一下(很不幸:这时候翻译者想用的是另一个词,哈哈!). 我觉得对这种有专门意思的语句根本就不应该翻译成中文,直接引用最好. ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13.5.2 专门化 .... 这不仅乏味,而且不安全—我们能让这个指针指向所希望的任何地方 原文是: it's unsafe--you could cast the pointer to anything you want. 很显然这个返回的指针是不能"指向所希望的任何地方"的. 翻译者居然对"cast"一词的理解严重错误.誰都知道它是"映射"的意思,或说白点就是"强制转换". ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 15.3.1 你可以想象在一些混合型中编译器实际支持两个名字和参数类型。 * 头文件 甚至是在定义非内联函数时,模板的头文件中也会放置所有的声明和定义。这似乎违背了通常的头文件规则:“不要在分配存储空间前放置任何东西”,这条规则是为了防止在连接时的多重定义错误。 原文是: You can imagine that the compiler does indeed carry both the name and the argument type(s) in some mangled form. 本来很好理解的话被翻译成了天书! 我不知道它的"两个"是从哪里来的('both'吗,呵呵,天啊),还有它居然把in some mangled form用来修饰compiler,称为混合型编译器,我的天! * header file Even if you create non-inline function definitions, you'll generally want to put all declarations and definitions for a template in a header file. This may seem to violate the normal header file rule of "Don't put in anything that allocates storage" to prevent multiple definition errors at link time,
*头文件 即使创建一个非内连函数定义,你通常想将template的所有声明和定义放入头文件中. 这看起来似乎与头文件规则相起违背:"不要将占用内存的东西放进来"(这样做是为了在连接时避免重复定义的错误). 乍一看,这是什么规则?虽然我们可能自己悟出,但这种低级错误让我汗颜! 感觉翻译者英文语法没过关. ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 还有很多.这是我的一点拙见. 我建议将本书作为英文版的参考书,实在看不懂时还可以参考一下.
2005.10.7 by Gene
发布于2005-10-7 19:10:00
(0)回应
有0人认为此评论有用, 有0人认为没用,
您认为呢?
|