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