精華區beta CompBook 關於我們 聯絡資訊
C++ Primer 答客問 (4) 侯捷 jjhou@ccca.nctu.edu.tw 1999.10.12 第一次發表於 清大.楓橋驛站(140.114.87.5).電腦書訊版(Computer/CompBook) 本文將於日後整理於 侯捷網站/侯捷譯作/C++ Primer 中文版/答客問 侯捷網站:www.jjhou.com ---------------------------------------------------------------- wenij wrote (1999/10/07) > [delete] > 1. 翻譯原文書,不免翻譯出來的文句太生疏了,即使侯 Sir 在最近 > 一本翻譯書已經把大部分的原文名詞保留,但我認為還是有一些 > 語句翻的太難懂它的意思了...也許我的中文造詣太差了吧 > [delete] 侯捷回覆: 我同意,有些英文句子再怎麼修潤,也不好看。我認為這是 原作者本身的思考方式與寫作技巧的問題。舉個例子,最近我 檢閱《C++ Primer 中文版》,看到 p.107 最後一段,覺得 思路打結。此段前後文主要是說,如欲將一個 object 當做 某個 reference 的初值,而兩者型別不同(但可轉換),那麼 這個 reference 必須是個 const reference 才行: double dval = 3.14159; const int &ri = dval; // legal for const reference only! 書中花了一些篇幅講編譯器內部動作,以解釋為什麼只有 const reference 才合法。p.107 最後一段說: --------------------------------------------------------↓ const references 並不會出現這樣的問題,因為它們是唯讀的。 所以,(1) 不允許 non-const references 代表那些「需要暫時 替代品」之 objects 或數值,或是 (2) 允許 reference 被定義 但卻無法有效運作,哪一種作法比較好?當然前者才是好的解決方案。 --------------------------------------------------------↑ 看到這裡,真的腦筋有點打結,因為作者把文字用得太複雜了。 於是我在手上這本書另外寫一段話,清楚而漂亮(我自認為) 地解釋「必須是 const reference」的原由。 可是我不能把我的這段文字取代原作者那段我認為過於複雜的說明。 那樣一來我這個譯者就太富侵略性了 :) 所以我同意 wenij 說「有些語句翻得太難懂它的意思了」, 不過我認為(以此例而言)無關讀者的中文造詣或譯者的 中文造詣,是原作者的思路與文字表達問題。 wenij 的來信很長,主要是希望我多創作,少翻譯。來信全文 及我的回覆將另文發表。 --- the end  -- ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ Mail: jjhou@ccca.nctu.edu.tw