整理日期 2002/02/28
我對讀者來信的回應與整理,一方面是自己留個記錄,一方面
竊自以為對其他讀者容或有點參考價值。所以依序整理下來。
為保障讀者隱私,所有來信一律隱其名,隱其址。曾經特別
囑咐我不要公開者, 當然也不予公開.

傳送日期: 2002年2月1日 PM 08:47
Hou sir:
第一次看到您的文章就被你的文風所吸引。可以說我是從您的《程序員》專欄裡認識你的。你的文章讓我一氣讀完(半個通宵呢(哈﹐合訂本﹐時間當然長了一些﹐不過你的文章我不逐字讀就讀不下呀﹗)
還在期末考試期間。)
你的文章確實讓我對C++的認識上了一大步﹐謝謝。
你的那本《深入淺出MFC》是不是太好了﹐我找了七個大書店都光了。罕事﹐罕事。

 

 

傳送日期: 2002年2月1日 PM 05:35
jjhou﹐您好﹗
讀了你和黃先生合譯的《泛型程式設計&STL》一書後﹐感覺真是痛快﹐不愧精裝版。真希望能多讀這些好書﹐但因兩岸這隔﹐要早日讀上中譯本好書﹐要頗費些週折。在此﹐感謝閣下﹐吾輩得以受益。
但在拜讀過程中﹐有些疑問﹐還望能多多指點。
1.  p141 line 6
void insert(iterator p, size_type n,
const_value& t){ 是否應該為
void insert(iterator p, size_type n,
const value_type& t){
2.  p144 line 9
a.
front() 是否應該為 a.back()
3.  p189 line 3
pointer allocator::allocate(size_type n,
cosnt void* = 0) 是否應該為
pointer allocator::allocate(size_type n,
const void* = 0)
4.  p191 line 3
construct 是否應該為 destroy
5.  p240 line 26
class
UnaryFunction, 是否應該為 class OutputIterator,
6.  p320 line 25
BidirectionalIter mid = first + n / 2; ? 是否所有的Bidirectional Iterator 都要求重載了operator +﹐並以advance實作。否則的話﹐first + n / 2如何動作。
7.  p321 line -1
false 是否應該為 true,或把m<n改為m>n。
8.  p322 line 3
includes 與 set_union很類似.....﹖ 這一段文字令我很迷惑﹐請問﹐includes算法有輸出或更改某一輸入範圍的動作嗎﹖
9.  p324 line -5
max(n-m, 0) 是否應該為 max(m-n, 0), 請指教。

以上幾個疑問﹐望能給予回復。

●侯捷回覆:感謝您如此細心閱讀並給予指正。

(1) 如您所言(即將納入勘誤表)
(2) 如您所言(原已載於勘誤表)
(3) 如您所言(即將納入勘誤表)
(4) 如您所言(即將納入勘誤表)
(5) 如您所言(原已載於勘誤表)
(6) Bidirectional iterator 的成立條件是,iterator 必須可以前進(operator+)也可以後退(operator-)。至於是否以 advance() 實現並無所謂,只要達成實際目的即可。
(7) 請見勘誤表
(8) 原書並無此段,是翻譯時剪貼失誤所致。非常非常抱歉。納入勘誤表。
(9) 我想原書無誤。

BTW,請上 http://www.research.att.com/~austern/errata.html 看原書勘誤。此書繁體版與英文版乃頁頁對譯,因此查找起來並不困難。

 

 

傳送日期: 2002年2月1日 PM 05:56
候老師您好﹗
最近在CSDN上看到一個帖子﹐我看了怎麼也想不通﹐麻煩您指導一下。
#include <iostream.h>
int main()
{
  int a[3] = {1, 2, 3};
  int i = 1;
  cout << a[i];
  cout << i[a];
}
為什麼兩者的輸出是一樣的﹖a[i]不是取 a的地址並加i (i的內容)處的內容麼﹐i[a]不是取i的地址加a(a的地址)處的內容麼﹐兩者怎麼相同了﹖a[i]=*(a+i)=*(i+a)=i[a]﹐我怎麼覺得在這裡說不過去啊﹐麻煩您了這麼小的問題都來打攪您﹐祝您身體健康﹐您寫的《MFC深入淺出》是我看過的最好的一本計算機書籍。

 

 

傳送日期: 2002年2月2日 PM 04:10
侯捷老師﹕
你好﹐為了快速的表達我的意思﹐先略去對您的崇敬之情的表達。我發現您的那個hello程序(顯示個“hello mfc”,上面有個數字在轉的那個﹐例程在光盤裡的hello.06中)
在我的機器上只能正常運行20秒﹐然後莫名其妙退出了。
程序的CMyWinApp::OnIdle調用了CMyFrameWnd::IdleTimeHandler﹐而CMyFrameWnd::IdleTimeHandler中又定義了3個對象﹐我想這樣是不是好浪費(重複定義了﹐這些東西只需要定義一次呀)﹖
我把他們統統的拿了出去(尤其是那個pDC的定義)。結果發現程序好了﹐而且運行速度也至少快了10倍
希望您試一試﹐說實話﹐初發現這個問題﹐對我這個初學者真是晴天霹靂﹐好不容易編寫的程序拿到客戶那裡就能用20秒﹐會多麼難堪﹖問題雖然解決了﹐但是我還是不明白為什麼會發生這樣的事情﹕只不過是沒有優化代碼﹐程序就罷工了﹖程序是如何結束的﹖我是初學﹐不會debug之類的高級東西﹐看不清楚來龍去脈﹐還請老師指教。
不好意思﹐打攪您這麼多時間﹐謝謝

●侯捷回覆:
(1) 在我的機器可以運行五分鐘(然後我把它關了)。無法重製的錯誤,無法回答。
(2) 你把它們統統拿了出去?拿到哪兒?當做 global objects?你犯了 OO 大忌。
(3) 只是一個小小範例,目的不在比快,在告訴各位 idle time 的運用。

註:後繼討論

 

 

 

傳送日期: 2002年2月4日 PM 03:52
尊敬的侯先生﹕
我是大陸的一名程序員﹐以前只專注于JAVA 平臺的軟件設計﹐現在因為工作需要要接觸到C++﹐需要一本比較全面的C++專著﹐通過篩選我認為C++PRIMER比較適合我﹐因為這本書是STANLY LIPPMAN的作品﹐中文版是您譯的﹐我很放心。但我們這裡比較大的圖書城(深圳)都沒有﹐不論是英文還是中文﹐怎麼才能得到這本書呢(最好是中文)。

●侯捷回覆:CSDN 少量代售繁體本,這是我所知道的唯一購買管道。

 

 

傳送日期: 2002年2月4日 PM 05:09
主旨: Fw: Download your book...
Dear jjhou :
I am a reader of your articles & books. I downloaded your book -- dissecting MFC 2/e -- last year.
Live : NanJing , JiangSu , P.R.C
I am a programmer of Microsoft Visual FoxPro. I work it for six years. Now , I am going to study C++. So, I downloaded your book. I will research some books that you translated, such as Effective C++ , Inside C++ object model and so on.

Very thanks you permit we download your books.
Thanks & Best Regards

 

 

 

傳送日期: 2002年2月4日 PM 06:36
候先生﹕您好﹗
也許您很忙﹐無暇看這封信﹐但我還是要寫一些﹐以表達我對你的崇敬之情﹗
這兩日在《程序員增訂本》上拜讀了你的一些文章﹐真是感觸頗深﹐對於你的一些觀點看法我非常讚同﹐我也是一名程序員﹐已從事這個職業兩年半了﹐曾經買了許許多多的計算機方面的書籍﹐現在回頭來看﹐也發現好多都可以看做垃圾了﹐但是同時要扔呢﹐有有點捨不得﹐頗有點“雞肋”的感覺﹐畢竟那些書都是我用自己的工資買來的。
看了《程序員》後﹐也深深感覺到自己很羞愧﹐竟然對軟件界了解的如此之少﹐竟然不知道候先生你們這些人﹐竟然眼界是如此的狹窄﹐實在是不好意思﹗
但是我很想和候先生交還交換一些看法﹐不知道有無機會﹐對於出版界﹐我很早也就感覺到了﹐不光是計算機書籍﹐包括中小學生的參考書籍﹐真是氾濫成災﹐沒有什麼內容。還有就是一些不知名的人物寫的一些書﹐每頁印幾行﹐每行幾個字﹐湊成厚厚的一本﹐如果說書有內容﹐我很欣賞﹐但是去一看﹐我敢保證98%是垃圾﹗我扯遠了﹐不好意思﹗
我也沒有寫什麼﹐說了些廢話﹐候先生如果能看一看﹐我也感到莫大的榮幸﹐就此﹐我繼續看那本《程序員》﹐如果有什麼心得﹐我! 會寫信給候先生的﹐不期望候先生的回信﹐因為候先生肯定很忙﹐我只是發發牢騷而已﹗
好了﹐再見﹗
祝候先生工作愉快﹐身體健康﹗
陝西讀者

●侯捷回覆:濫竽充數的問題,從來不曾斷過。就像光和影一樣,有陽光的地方就有陰影。解決這個問題,需要讀者的覺醒:慎選好書。濫竽充數的書沒了市場,就失去生存的養份;好書有了好成績,自然就有蓬勃的生命,好作者也就能開展更多的努力。

 



你好:
我是你的一個新讀者,最近讀到你的這本>(第二版),有一個並不關鍵的小問題,請教一下:

第284面,第八行:
...........
注意,CWnd有成員函數CreateEx,但是派生類CFrameWnd並沒有
###,所以這裡調用的是CFrameWnd::CreateEx,其實乃是從父類繼承下來的CWnd::CreateEx.
...........
###處是不是少了"
改變虛函數CreateEx"幾個字呀?

如果我是錯的, 希望您在萬忙中抽出一點時間來為我稍微解釋一下, 如果我對了,就告訴我一聲好了, 非常抱歉打攪您了.
中南大學. 李□□

●侯捷回覆:簡體版雖和繁體版用字略有不同,但並未轉譯錯誤。這裡的問題出在用詞稍嫌簡略。加上你說的那些個字,的確比較清楚。謝謝。納入勘誤表。



 

傳送日期: 2002年2月5日 AM 10:16
Mr.Hou﹕
從未讀過象您寫的書一樣的容易入門和提高﹐這個書在北京買了第3次才買到﹐實在是脫銷了﹐我買了很多的vc的書﹐都是看了以後糊塗的很﹐但是您的書寫的是如此的深入淺出﹗﹗﹗很感謝您﹐雖然我不是程序員﹐但是我喜歡這本書﹐再一次的謝謝您﹐並祝您春節快樂﹐工作愉快﹗希望有更多的好書出來﹐等候您的好消息﹗﹗﹗

 

 

傳送日期: 2002年2月5日 AM 10:27
侯先生﹕您好
近段時間﹐我接連拜讀了您的譯作《Essential C++》,《Effective C++》,《深度探索C++對象模型》﹐我頓然感覺C++離我很近很近。當初﹐我就是用C++去叩開編程的門扉的﹐我從TC++ 1.0用到Borland C++ 3.1﹐一個字﹕爽。只是後來Windows風行﹐我不勝VC的煩劇﹐或者說許久不得其門而入(我要早幾年見到《MFC深入淺出》就好了)﹐我用上了Delphi。
侯先生﹐我對《深度探索C++對象模型》(簡體版)一書的排版不得不深表遺憾﹐因為
我發現書中例子程序的相當多的單行註釋竄到下一行﹐不多瞧一遍還以為是C++ statement呢

近日拜訪您的網站﹐欣悉您將寫“源碼剖析經驗”一文﹐我真想即刻讀到此文﹐我需要它阿﹐我感覺它將把我從“高中級的程序員”帶向“工程師級程序員”甚至“大師級”的目標。我將期待它﹐盼望它﹐如極飢渴之人盼望甘露。
2002.2.5 廈門

●侯捷回覆:單行註釋竄到下一行,這的確是很不好的狀況。我提供的是繁體版 Word 電子檔案,版面全都已經設定妥當。簡體版出現這種現象,我猜想是因為 BIG5 碼轉為 GB 碼後,英文字距變寬(我的確在網頁上發現這樣的現象,各位看看侯捷網站的繁簡兩站,比較便知),於是擠到下一行去了。

我的責任編輯一定會看到這封信,她一定會開始注意並設法解決這個問題。謝謝你的提出,否則我們無由得知這項版式錯誤。


 

傳送日期: 2002年2月5日 AM 11:10
現職﹕高中生
年齡﹕17
居住地﹕河南省三門峽市
  您好﹗侯先生。
  我們這裡賣的計算機書也很多﹐只是多是些垃圾(我已經買了無數本垃圾了)﹐尤其是清華大學出版社出的﹐簡直就是騙錢﹐什麼《Visual C++從入門到精通》﹐看完後連門都進不去。只好到網上去搜尋電子圖書﹐沒有什麼選擇﹐只要見到跟編程有關的就下載﹐因為我認為凡是有人願意製成電子版的圖書一般都是精品(因為不可能騙錢)﹐事實證明確實如此﹐在見到您的《深入淺出 MFC》(電子版)﹐起初是覺得名字起得很特色﹐不像上面的那本書那麼老土﹐於是就看了起來﹐馬上就發現該書的內容更有特色﹐語言親切﹐文字生動﹐輕鬆活潑﹐絕對不像我以前所看過的書那麼冰冷﹐乏味﹐我馬上意識到您的文字功底應該也不在話下﹐我們缺少的就是您這種作家。看了幾章後﹐我立刻產生了買一本原版的衝動﹐真是踏遍鐵鞋無覓處﹐得來全不費功夫﹐找遍所有大書店後﹐竟然在一家毫不起眼的小書店找到﹐店主說這是別人托她去進的﹐所以順便進了兩本﹐現在只是一本了﹐真是我的運氣﹗還是簡體版的呢﹗我原來對Windows程序機製的許多疑問﹐在您的書中竟然都幫我解決了﹐您的書真是詳實週到啊﹐太體貼我們這些初學者。想告訴您的是﹐在我們這裡書店的幾千種計算機圖書中(多是些知名大學出版社出的)﹐竟然找不到您的著作﹐真是一大遺憾﹐
希望圖書進貨渠道能廣泛一些﹐來方便我們這些技術渴求者。此致
敬禮﹗

●侯捷回覆:我的責任編輯一定會看到你的心聲。

 

 

傳送日期: 2002年2月5日 AM 10:24
侯先生﹐你好﹐

很早以前就拜讀過您的有關MFC的大作﹐對我的幫助頗大﹐在此先表示感謝﹗

現在我在工作中遇到一個問題﹐問了很多人都沒有一個很好的解答﹐今天上了VCHELP發現您的郵件地址﹐特向您請教﹕

我們現在有一個項目﹐是想做一個人機互動的界面﹐幫助一般用戶設計自己的界面﹐而不需要編程。我看過一些例子﹐有點象﹐但就是不知道他們是怎麼做的。此項目的關鍵問題就是﹕

1。設計一個包容器和一些工具按鈕﹐用戶可以添加文本﹐線﹐矩形框﹐圓形框﹐按鈕﹐CheckBox, RadioBox, 圖片﹐ ActiveX Components, 動畫等﹐並可以指定他們的屬性﹐調整大小﹐顏色和位置等﹐這是在Design Mode完成的;

2。在用戶設計完成後﹐可以轉到Runtime Mode﹐進而使用這些功能﹐如點擊Button, CheckBox, RadioBox,等等﹐程序能夠自動響應用戶的輸入動作﹐如果是動畫就開始自動活動﹐等等﹐總之就好像有自己的消息循環一樣﹔

3。當用戶覺得滿意後﹐可以將此文件保存下來﹐下次可以再打開編輯或執行。

所有以上操作都在我們自己的程序中完成﹐無需借助編譯器等。

總的來說有點像VC的Resource Editor﹐但不同點是我們的東西只是保存成一般文件而不用編譯執行﹐因為要執行的不是很複雜﹐但要有這種功能﹐並且能在程序中完成。

如果您這到這方面的技術或有一些簡單代碼能夠示範一下﹐我將不勝感激﹗希望能得到您的幫助﹗

謝謝﹐致禮

 

 

傳送日期: 2002年2月5日 AM 10:59
侯老師 ﹕您好﹗
我是一名大學生﹐為了掌握VC﹐正在苦修C++。您譯的《Essential C++》使我受益匪淺。
但是在閱讀的過程中﹐我發現了一個問題。是這樣的﹕
P29 關於rand()和srand()的用法有出處。書上說﹕“srand()的參數是所謂隨機數產生器種子(seed)。
…現在﹐將隨機數產生器的種子設為5﹐我們就可以將rand()的返回值限制在0和5之間。”
可是rand()真的會返回0∼5之間的數嗎﹖不會的。問題出在對“種子”的理解上。我查閱了相關書籍﹐認為它的作用是初始化隨機數發生器﹐使得每次程序啟動時﹐rand()所得到的隨機數都不同。舉個例子﹕
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
  srand(5);
  int ir = rand();
  cout<<"Random number is "<<ir<<endl;
  return 0;
}
無論程序運行多少次﹐輸出的值都一樣(我的機子上是54﹐起碼比5大)。因為seed是定值5。
解決的方法是用系統當前時間作為seed﹕srand(time(0))。當然要包含頭文件ctime。
另外﹐從書中的源代碼"seq_index = rand() % seq_cnt"來看﹐Lippman也沒有認為rand()會返回0∼5之間的數。不然"% seq_cnt"就多餘了。
不知我的觀點是否正確﹐懇請您來信指正。或者在您的網頁上的勘誤表中列出了﹐而我沒有注意。

●侯捷回覆:你是對的,譯本不對。納入勘誤表,非常感謝。

 



傳送日期: 2002年2月5日 PM 04:27
侯先生您好:

我的名字是□□□,目前就讀於清大工工所博士班一年級

日前由於計畫需要因此接觸了VC++ 6.0,自己以前雖有C語言的經驗   但是在接觸C++或VC++ 時,卻發現有些觀念不是很容易了解,尤其是物件導向的概念,對於日常生活中有的事件,實體上的東西要看成一個物件比較容易,但是抽象物要視為程式語言中的物件則比較不易。當時,我的學長跟我介紹了您的大作”深入淺出MFC”,才看前面的文章就覺得敘述的邏輯以及觀念甚為清楚,很是不錯,只是到目前為止一直買不到。

在網路上,知道您有提供download e-book的服務,因此先來下載。
謝謝你的體貼以及用心。敬祝學安



傳送日期: 2002年2月5日 PM 07:40
主旨: Happy New Year
侯大哥好
新年快樂 先向你拜個早年

去年五月底退伍 待業至今
家裡看不下去 於是斥資 趕我進補習班唸書
於是現在如火如荼準備MCSE考試
預計四月底五月初考試 我勢在必得

很高興終於走上這一條路
所以想跟你分享一下這樣的心情
很累 一個文科人在這種毫不相關的領域裡
唯一能跟別人相比的只有英文的閱讀能力
不過我累得很快樂 幾近自我虐待
所以 我相信我是歡喜走上這條路的

消沉好久 荒廢了很多
但 侯大哥 我要趕上來了
這樣講也不怕你笑話 32歲開始轉換跑道
前途還一片茫然
卻忝不知恥地想要追上你的腳步 呵呵

有一個偶像可以崇拜其實是很快樂
如果碰巧又是自己能學習與追隨的對象 那真是幸福了
我想我很清楚我自己的熱情
也絕不會盲從於他人所走過的路線
不過眼前是坦蕩蕩的康莊大道
我很慶幸不用再在迂迴小路上重新摸索一次

目前正在擬定讀書計畫 希望快點把自己的程度提升
除了跟你談談感性的夢想
也期待早日可以和你聊聊技術上的點點滴滴
我其實也是個嗜喝咖啡的人
很盼望能有機會和你共享下午茶的悠閒時光
在這之前 我會努力鞭策自己的
希望這樣的小小心願
有一天能成為自己給自己努力過後的獎勵

新年新希望 祝福你也祝福我

 

傳送日期: 2002年2月5日 PM 11:19
主旨: 請問元智STL的課程開始上課日期及時間 ?
Hor sir,
年後, 很想有機會去聽STL課. 但可能工作需停半年, 尚與家人商量中.一是興趣, 再則現代
工作者不斷學習好像也無法避免.

●侯捷回覆:元智大學 STL課程上課日期及時間

 

傳送日期: 2002年2月6日 AM 12:04
侯先生,您好:
因為找遍了台中市的書局(至少我找得到的)都找不到您的「深入淺出MFC」欲訂書卻又得到"目前書商那邊有些問題,沒有辦法預訂"的消息無奈只好先用Download的了

我本是以VB在混日子的程式員  日前換了工作,現職必須要會VC及VB   所以才....呵~ ^^"
衷心的希望能快點買到您的譯作。
居住省份(臺灣讀者請寫縣市):台中市

 

 

傳送日期: 2002年2月5日 PM 10:46
候老師﹕
您好﹗我上次問了你一個佛學問題﹕‘不落因果’和‘不昧因果’的區別﹐沒想到你也回復這種和c++沒什麼關係的問題。可見老師很認真﹐而且有情趣﹐讓我很佩服﹗在我所學習的學校認真講課的老師本來就很少﹐認真講課而有又真本事的老師就更少﹐而認真講課又有真本事又風趣又有情趣的老師那就是鳳毛麟角了。我很羨慕元智大學的學生﹗老師對我所問的問題的解釋很準確﹐可見老師對佛學也有所涉獵﹐不然怎麼能知道這些佛學故事。

最近學校放寒假我也沒休息。在做一個軟件﹐所做的軟件和老師的書《mfc深入淺出》裡的Scribble例子相似﹐所以老師的書不僅為我打好了基礎﹐而且對我的實習項目也有所引導。
我白天學mfc﹐晚上就上老師的網站看文章﹐看老師的文章的同時我聽的是佛經詠唱﹐像什麼﹕六字大明咒﹐梵唱大悲咒﹐般若心咒﹐當然我是一句也聽不懂﹐不過我覺得這樣才能體會出老師文章中的哲學氣息﹐以及佛家氣息。今天打開“(忽聞海外有仙山(曾銘源))”這篇文章﹐顯示的是“blank”﹐怎麼沒有呢﹖是老師沒放上去呢﹖還是我的網路有問題呢﹖
‘曾銘源’我記得在老師的《深入淺出》出現過﹐在講虛擬函數一節中﹐
好像是個“時薪職員”吧﹗
祝老師身體健康﹗

●侯捷回覆:曾銘源是我的好朋友,現任紐約CA高級主管。忽聞海外有仙山(曾銘源)一文 link error,原因是當時尚未徵得他的同意。雖然他一定會同意,但缺了這道手續,我不願放上。現在,要找出這篇文章的電子檔怕也難了。

 

 



傳送日期: 2002年2月6日 PM 12:39
居住省份(台灣讀者請寫縣市)﹕上海市
對侯捷的建議﹕侯老師的敬業精神委實讓人敬仰﹐而這些譯著也傾注了侯老師的心血﹐給廣大中華熱血男兒提供了施展技藝的舞台﹐非常感謝。大陸如果也能有一兩個敢與侯捷爭先﹐那中華民族真是幸甚。

●侯捷回覆:你把我放在太高的位置,我不敢當。



傳送日期: 2002年2月6日 PM 04:29
侯先生﹕
您好﹐我是南京的一名讀者﹐我先是在網上下載了你的《深入淺出MFC》(繁體版)﹐它是我有一種醍醐灌頂的感覺﹐以前好多糊塗的問題﹐都變得迎刃而解真是有一種欣欣然的感覺﹐後來我又乾脆到書店買回來細細拜讀﹐真是每一次都有新感覺﹗

我今天下午剛去書店買了你的譯作《Essential C++》、《深度探索C++對象模型》﹐想利用春節放假期間好好研讀一番﹐但
我不知道這其中應該注意的問題﹐因此﹐想請教先生指點一二﹗盼望你的回音﹗

我本身是學習電子的﹐應該來說﹐安心工作還是可以養家糊口的﹐但是不知道為什麼﹐對於軟件自己就是有一種莫名的喜歡﹐始終不能釋懷﹐看來是不學習明白﹐是不得安寧了﹗

在新年來臨之際﹐祝先生及家人新年快樂﹐萬事如意﹗﹗﹗

●侯捷回覆:首先上網查看勘誤表,一一修正紙本書。然後,好好品嚐這些佳餚。遇有問題,看看侯捷網站上是否已有討論。



 

傳送日期: 2002年2月6日 PM 04:46
我是你的忠實讀者﹐剛買了你的《Effective C++》中文版2Edition(華中科大出版)﹐有個問題向你請教﹕
在條款10(page 42)的例子class Airplane中

定義了Aieplane *
newBlock =
static_cast(::operator new(BLOCK_SIZE*sizeof(Airplane)));
這裡newBlock 是一個 Airplane型別的point

而在後面的for 循環中﹐有
newBlock[i].next = &newBlock[i+1] 這裡newBlock 是一個對象數組
是否矛盾﹖請賜教。謝謝

●侯捷回覆:沒有矛盾。array name 即是 pointer。在 pointer 身上施加算術運算,相當於在 array 身上施行 operator[]。



 

傳送日期: 2002年2月6日 PM 01:05
侯先生:
非常喜歡你的書﹐亦非常佩服你對書籍的認真。閱讀
Essential C++ 中文版的過程中﹐發現有以下幾處文字錯誤﹐望求證于先生。
p16L17、L20中的num_cor++疑為num_right++﹔
L22中的num_cor疑為num_right。
p19L15中的“Wrong again.”疑為“Wrong a second time.”。
                        
zming

●侯捷回覆:納入勘誤表如下,謝謝。

■第二章(英文版筆誤)
說明:本章許多地方混用了 num_right 和 num_cor 兩個變數名稱,例如 p16 就有多處。
        這是作者的疏失。為恐掛一漏萬,身為譯者的我並不打算修改之。請讀者注意。
        Lippman 的書常出現這類錯誤,著眼大處卻耽誤於小處。
感謝:zming
日期:2002/02/15

■p19,L15(英文版筆誤)
原文:Hmm. Sorry. Wrong again.
更正:Hmm. Sorry. Wrong a second time.
說明:配合 p18 L-5 程式碼。
感謝:zming
日期:2002/02/15


Sent: Wednesday, February 06, 2002 1:06 PM
Subject: 希望能儘快出版侯捷先生譯的<<C++ Primer>>之簡體版
周筠先生你好﹕
我是哈爾濱工業大學的一名學生。
我先是從網上看了侯先生的《深入淺出MFC》,深為迷戀。一次偶然的機會﹐逛書店的時候發現了它的簡體版﹐簡直欣喜若狂﹗﹗回來之後﹐可謂愛不釋手﹗讀一本專業書籍﹐能有這樣痴迷的程度﹐我向您大概可以想象得到我當時的心情與感受﹗﹗
也就是那時候起﹐我對翻譯的書都橫挑剔了。
貴社出版的侯先生的書﹐目前能買到的﹐我都讀了﹕
《深入淺出MFC》《深度探索C++對象模型》《Essential C++》《Effective C++》我都通讀了。感覺受益匪淺﹗
深切建議與請求貴社能出版侯先生譯的以下兩本書﹕
《C++ Primer》《More Effective C++》
聽說《C++ Primer》潘愛民先生翻譯的版本大約三月份出版,但我還是喜歡侯先生翻譯的。因為潘先生頂多譯出原書水平﹐而侯先生能譯出比原書高的水平﹐因為侯先生會在字裡行間加註﹐加導讀等。
貴社的書出得很好﹐再次向您表示敬意﹐並祝春節愉快﹗﹗

●侯捷回覆:愛民的技術十分優秀,做事也很認真。雖然他一再表示他不打算以翻譯為個人事業,但他仍然對他所經手的事盡了很好的本份。大陸出版環境束縛了他,我的客卿身份比較能夠提出要求和改進意見。雖然我對愛民不願在技術寫譯這條路上發揮感到惋惜,但人各有志,不能強求。

你喜歡我的書,我很開心。至於你所提的兩本書,早已有出版社進行。你已經聽說《C++ Primer》潘愛民先生翻譯的版本大約三月份出版, 為何還建議華中出版侯捷譯本?你不知道譯權只有一個嗎 :)

 

 

傳送日期: 2002年2月7日 AM 12:00
侯老師﹕您好﹗
我是您在大陸的一名讀者﹐最近拜讀您的大作﹐覺得博大精深中帶ぴ詼諧﹐讓人如沐春風。
在讀到53頁時﹐您說﹕“‘面嚮對象’的觀念是描繪現實世界用的﹐所以﹐你可以用真實生活中的經驗去考慮程序設計的邏輯。”
當我帶ぴ這種思想去理解73頁的程序時產生了一點疑問。

class SavingAccount
{
private:
  char m_name[40];
  char m_addr[60];
  double m_total;
  static double m_rate;
public:
  static void setRate(double newRate)
    {m_rate=newRate;}
  static void showRate()
    {cout<<m_rate<<endl;}
};

double SavingAccount::m_rate=0.0075;

void main()
{
  SavingAccount::setRate(0.0074);
  SavingAccount::showRate();
  SavingAccount myAccount;
  myAccount.setRate(0.0073);
  myAccount.showRate();
}

當類的一個對象myAccount要求改變利率時﹐他也做到了。而在生活中﹐這可以麼﹖我接觸c++沒多久﹐可能真的是因為我太淺陋﹐可我是自學者﹐週圍沒人可以問。
感謝您在百忙之中關注這樣一個膚淺的問題。

此致敬禮
再次向您問候﹗希望能夠讀到您更多的新書﹗

●侯捷回覆:你提的這個問題很好。真實生活中不可能讓客戶自行更動利率,所以以上設計並不貼近真實生活。請你想想怎麼改。

 

 


傳送日期: 2002年2月7日 PM 07:08
候捷老師您好﹕

我是從購買了您著的深入淺出MFC之後開始了解您的﹐雖然我祇讀了此書的前幾十頁﹐但我可以看出您和其他很多的作者不同﹐您是真正能給予學生以知識以啟迪的人。

在學習過程中﹐我發現計算機科學是個泛圍很廣的應用科學﹐而
每個人的精力又是極其有限的。我很難想像一個能掌握諸如:操作系統﹐數據庫﹐計算機網絡等所有的應用技術﹐我不知道在計算機科學的這麼多分支領域中﹐哪一個應是我今後的方向。

我覺得人最怕的就是沒有目標與方向。不知
您是否能寫一篇分析現在計算機行業的現狀﹐以及各個專門領域的發展方向的文章。就拿OS來說吧﹐我很想知道作為中國人是否應該為研發一個有中國自主知識產權的產品而努力﹐更不知道這個目標到底離我們有多遠。

●侯捷回覆:CSDN 上有不少分析現在計算機行業現狀﹐各個專門領域的發展方向的文章或報導。趨勢分析不是我的專長,也不是我的興趣。市場調查更需大量人力物力,非我這樣一個閒雲野鶴的人所能為。

一個世紀以來,中國人做事滲雜了許多民族主義。當然有原因:中國人歷經太多苦難,恨不得強大再強大。所以,研發一個屬於自己的XXX,就成為常聽的口號,扛起民族的大纛和中國人的希望。

很沉重的問題呀。

我能說什麼?研發 OS 是水到渠成的事。如果單只為了民族主義,研發成果我想不會好到哪裡去。強扭的瓜不甜。Linux 是跨國努力,源碼開放,何不從它著手?大家都可以享受 open source 的成果,但中國人(華人)在 open source 領域又貢獻了多少?值得深思。

 


傳送日期: 2002年2月7日 PM 04:49
侯大師您好...我是您的忠實讀者
我想請教您一些問題 看能否得到解答
小弟我寫程式以有三年了從 Basic -> VB -> C -> C++ -> (DOS Assembly 遇挫折而學的不精) -> SDK,MFC end

even now 我對 程式設計 百感焦急 原因是有太多東西不會|||>_<
由於我學寫程式時是在 Win32 時代 " 剛 " 學程式設計時啥 Real mode , protect mode , DOS assembly language全都不知道有那種東西
因為電腦上摸的都是Windows 至於dos programming幾乎沒碰 現在翻舊書又不知自己在幹麻 因為書上教的不管是組語 或 低階的硬體控制(大力士卡...)
都是在Real mode 下教學跟本無法用在當今的MS Windows下 我就想我花全部的時間把Real mode搞通(以我的IQ at least one year) 不是等於浪費時間嗎????

聽說要學DDK就要先會SDK我想我SDK應沒太大的問題

到現在很想朝著 Windows Driver , 8253 , 8259,....學習
但我要如何 不過於浪廢翻舊書(DOS時代)的時間 而學會呢 ???

從高二碰程式設計到現在已經大一資工系了,在學習的路上碰到許多瓶頸 希望大師若有空的話幫我解惑 敝人必感激不盡

 

 

 

傳送日期: 2002年2月7日 AM 11:40
先生﹐最近我做 ... 閱讀boost庫的代碼...加上最近一段時間我所做的那個software完成﹐其中大量使用STL和OO特性﹐前後計10,000行代碼左右﹐算是略有一些實戰心得了。綜合讀書、讀碼、寫碼的感受﹐我越來越有一種疑慮﹐想請教先生的看法。

我曾經非常推崇template的解決方案﹐並推薦同好者學習Boost中的技巧。但是我現在越來越感到﹐在實際開發中﹐我覺得類似boost中某些模板技巧﹐似乎正在重蹈macros的覆轍﹐變得越來越複雜﹐越來越tricky﹐代碼難以編譯不說﹐更難以閱讀和維護。某些技術﹐實在有"為用模板而用模板"之嫌。例如boost::regex++﹐固然將模板技術運用得高超﹐但是其效率一般只及Perl的1/4﹐而微軟研究院(美國)一研究員﹐用比較簡單的template技術﹐實現的GRETA庫﹐同樣處理regular expression﹐其效率足以與Perl抗衡。此事對我震撼不小﹐難道我們學習模板技術﹐泛型技術﹐只是為了"衒耀"一種編程技巧碼﹖

我現在非常置疑這個方向是否正確。不知道先生怎麼看。

我現在以為﹐C++中最重要﹐最有效﹐最常用的那部份﹐還是基本的C++和標準庫中的那些東西﹐還是OO和STL所展示的generic programming技術。一味追求template編程技巧﹐恐怕不是正確的方向。即使是library的編寫﹐對於template能力也不應該濫用。普通C++愛好者學習﹐還是應該以標準庫和STL為准﹐不宜過早閱讀Boost source﹐以免"走火入魔"。

另外﹐
我感到在一種語言中泡的太久﹐漸漸有一種局限﹐無論C++是多麼偉大的語言﹐也不可避免地限制了我們的思想。似乎應該擴大自己的眼光﹐了解一兩中其他語言的思想。我覺得Python似乎是一個很適合的點。

先生的意見如何﹖

●侯捷回覆:你終於有了一些實戰體會,終於開始 real world project。這和學校中的習作截然不同 — 規模還在次要,最主要是工作態度。你的東西要賣錢,你的產品要維護,你的肩上有了責任。

我曾經告訴過你,OO 有其價值,非 GP 可取代。GP 自有擅場,亦非 OO 可到達。application framework 如何以 GP 實現?不可能!STL 揭示的彈性與靈活,如何跳過 template 完成?也不可能!OO 要求把一切相關 data 和 functions 封裝起來,GP 卻要求把 data(containers)和 functions(algorithms)拆開(再透過 iterators 橋接起來),這是相悖的兩種思考。

不同的場合運用不同的技術,才能紅花綠葉相輔相成,威力加乘。GP 在 data structures + algorithms 身上找到了一個絕佳發揮場所,其為每個程式所必須,又與框架系統不生任何杆格。STL 的複雜度遠小於 application framework,很容易就讓人們良好地接受它、運用它、深入理解它。

任何技術都需要一群急先鋒,扮演探究極限的角色。《Modren C++ Design》和 Andrei Alexandrescu 那群人,就是 GP 急先鋒,Alexander Stepanov 則是 GP 教主。沒有這些人的狂熱與偏執,我們不知道 GP 的極限。他們的研究是否已達實用價值,由時間判斷,他們的立論出於偏執或智慧,由我們判斷。

你已經進入業界,你應該已有體會,卡了位的公司,要求穩定成長,還在奮鬥求生存的公司,追求大破大立。不同的位置,不同的角度,每個人期待的都不相同。一旦你經驗老到,你就再也不會對新技術新名詞而瘋狂而一頭栽入了,你會冷靜判斷,決定自己的方向。一旦成熟老到,有些人會後悔年少的輕狂孟浪。其實也不必,那就是成長過程。而且,為某些事不夠理智地瘋狂,是許多人共有的經驗 :)

年輕朋友常落入「以技服人」的眩技窠臼,並且愛把新技術、新行頭掛在嘴上,任何時刻都要刻意以「不經意的姿勢」流露幾許科技貴族氣質。這種情況我見很多。我不是說你,你的表現很自制沉穩。在近乎狂熱地推崇 template 的過程中,你寫了一些帖文,我看過。正因為有那樣的過程,你才有能力做今天的深刻反思。

網絡上有無數 library,其中不乏很好的作品,不乏很好的 credit。但是閱讀源碼茲事體大,它會耗費許多許多時間和精力。所以一定要慎選閱讀對象,不可輕率為之。你的時間和精力都容不得虛擲。我個人認為,只有其價值被百分之百認定的大型卓越作品,才值得剖析源碼,從中學習深層技術。

「我感到在一種語言中泡的太久﹐漸漸有一種局限」。確是如此,所以我曾要你注意 Java。我自己也研究 Java 和 C#,從中尋找新的養分、新的刺激。但只有對某種語言有極深刻的體會,才適合以它為主軸做這類橫向攻錯。你提到的 Python,我並無接觸。


 

傳送日期: 2002年2月8日 PM 11:16
essential c++:
第108頁﹐第8行﹐原文為“並在class object結束其生命時被釋還”﹐
字典中並無“釋還”的用法﹐所以是不是應改為“並在class object結束其生命時被釋放”

深入淺出MFC 2nd第八刷:
第60頁﹐第5行﹐原文為“它傳回CEmPloyee*”﹐前後名稱不一致﹐應改為“它傳回CEmployee*”

●侯捷回覆:釋還,釋放,你不了解意思嗎?字典查不到嗎?你查哪一本字典?查了幾本字典?這影響你的閱讀嗎?為什麼要在意這種問題?

不要把精力放在這種問題上。姑且不論你說的對不對,一切都規矩方圓,文字還有活力可言嗎?活躍一些。

你對《深入淺出MFC》的指正,納入勘誤表,謝謝。

 

 

傳送日期: 2002年2月10日 PM 07:22
侯捷先生:
您好,冒昧為您些問題。

我個人是一個程序員,有近4年的工作經驗,最近兩年一直集中在做 j2ee這方面的開發,這兩年的學習過程中,我自認對java語言本身和相關的核心api,擴展api,oop有了較好的認識,和理解,也具備了相當的工作經驗。我目前的問題是,現在我想再學習1,2門語言,對于script語言,我選定python。對于系統語言,我在考慮是否應該重新學習c++,我對語言自身和相關oo部分的東西感覺不會太困難,但是
c++自身的忒點要求學習者本身去了解,精通特定的平台和框架体系,這又是我所不情愿的,一來我沒有實際經驗,很難說我會用c++做哪一方面的東西,我主要還是做java。二來學習這些東西要耗費大量的時間和經歷,學習java的各類extended api已經讓我處在一种不停的奔跑的進程中了。在過去這兩年里我除了java沒有去接触任何其他語言,我認為精通一門,比粗通多門要好得多,更多的精力可以放在更高層次的問題上問題是在很多人的標准里,不精通c++都算不上真正程序員。尤其現在java火熱,太多的c++程序員轉過來做java.在這种情況下,沒有c++背景的人,很多人怀疑你自身的能力。很荒謬,可是是現實,包括大陸某知名的linux開發人員都對我說學不好c++的人,才去學java這樣的話.很多公司宁可招c++的高程,讓他們改學java,也不要純懂java的人,很多人認為我這個時候學習c++年紀已經太大了,我已經過了25歲。自己也跛為困惑。我無意在30歲以前去做系分和pm,還是覺得做程序員比較有樂趣,目前對出路比較迷惑,懇請指點一下。

另:發現您的大部分作品都局限于比較具体技術方面的東西,對于一些較高層次的,涉及較少,如沒見到您的作品或譯作有design pattern,anti-pattern,refactor這些更大局一點的東西,諸多經典的oo書籍中,您還是以oop為主,似乎也只提到dp,也無和SE相關的作品。感覺還是一种在武俠中追求個人練功及至的時代,
為什么您不投入更多的精力去編寫翻譯一些和具体語言無關較高層次的設計和SE方面的東西?

又:在您的网站上發現了您翻譯的refactor一書,此等好書不知大陸是否已有簡体出版計划?侯先生為何不向大陸讀者多推荐一些這方面的書?
目前唯技術論是在是太濫了,看過太多程序員可以連續熬夜寫几万代碼,卻連基本的代碼規范都不肯遵守,實在是無言以對呀。
2002年2月10日



●侯捷回覆:這封信寫得很好,見解中肯,言詞懇切。

我曾經寫過「C++ 的沉迷與愛戀」一文,但我不知道大陸迷戀 C++ 到了這般地步 — 如果你的話有代表性。看起來 C++ 好像是漢武帝眼中的儒家了,對大陸軟件界而言。

精通一門確實比粗通多門要好得多。學不好c++才去學java這種話太荒謬,太不可思議。就算換成學不好c++才去學VB我都覺得很荒謬。

語言的選擇重點主要在適用性。學術研究是一回事,工業實戰是另一回事。小平同志的白貓黑貓論,大家都忘了。

為什么您不投入更多的精力去編寫翻譯一些和具体語言無關較高層次的設計和SE方面的東西。呵呵,一步一步來!沒有過去十年堆壘的厚實基礎,我如何建構一個自己完全掌握的堅實體系?我是做教育的人,我需要一個我完完全全放心、值得推薦的好書體系,初階、中階、高階…、語言、應用、系統…,一步一步往上攻堅。你提到的《Refactoring》,不正是一個開始嗎 :)   但如軟件工程學中偏於管理的一支,我就完全沒有興趣。

《Refactoring》侯捷譯本 會不會發行簡體版,主動權不在我。

 

 

傳送日期: 2002年2月12日 PM 05:01
侯捷老師﹕
我是在您的教導下成長起來的﹐雖然未曾謀面﹐您嚴謹的學習態度和友善的為人讓我等欽佩不已。
受您的影響﹐我也喜歡上了刨根問底。最近也寫了一本書﹐其中對C++的語法機製在彙編一級進行的深入細緻的分析。我覺得這樣做不僅可以徹底了解C++的語法機製﹐而且也提供的深入研究C++的一個普遍性的方法。
不知道這樣做是否有價值。非常想聽一聽您的觀點。
或許您會從書中看到與您相同的觀點﹐請不要見怪﹐
因為我受您的影響太大了

附件是一個自解壓的文件﹐是一本書的一部份。如果您能在百忙之中瀏覽一下﹐我將感到莫大的榮幸。
南京的學生。

●侯捷回覆:只要有自己的見解,有自己的心得,就是有價值。至於有沒有市場價值,我不知道。

你說受我的影響很大,我很高興。我努力做事,就是為了產生影響力,帶給別人好的影響。

很抱歉我撥不出時間看你的文稿。而且我從不執行來自網絡的可執行檔 :) — 即使我有很好的守門神。你一定知道,我這麼說不是污辱你的誠意,但是傷害常在無意中造成。

 

 

 

傳送日期: 2002年2月14日 AM 09:39
侯老師﹕
新年好﹗自從我在今年的6月買了你的《MFC深入淺出》之後﹐便曉得了台灣有一個計算機教育的大師──您。我被你的文風和對技術的深入探索所折服﹐便經常來光臨您的網站﹐你的每篇文章都是對我的指導。
以前我學VC﹐我的老師告訴我不要學﹐我是難以搞懂的﹐但是我就偏要學﹐結果一團霧水﹐頭大的不得了。
但是﹐知道有你這位老師﹐我又有了學習的信心。特別是你推薦的《選義按部﹐考辭就班》已經規劃好了學習的軌跡﹐真是相見恨晚。我也有缺點﹕一但玩上了電腦﹐就不想編程序﹔一回家就後悔自己的行為。
不知道老師你是怎麼處理學與玩的關係
祝﹕馬年馬到成功﹗
湖南省

●侯捷回覆:叫我老師,我很開心。叫我大師,我很不喜歡。名不符實的稱謂,我一點都不喜歡。

學與玩的關係?玩是指電腦遊戲嗎?沒有一樣電腦遊戲吸引我的興趣,我 40 歲了,又有每天的工作要做。編程對我而言,就是遊戲。

 

 

 

傳送日期: 2002年2月14日 PM 04:21
侯老師您好﹕
學生是大陸的一個編程愛好者﹐有幸拜讀過您的文章。使學生得益菲淺。自問此生還從未對教師如此尊敬(確實不是對教師這個行業不尊敬﹐確是學生由於自己經歷的原因﹐沒有遇到一位可尊敬的先生。先生如有興趣可看“
注1”)。您的技術文章就象一個親切的長輩﹐讀起來有一種讓人很溫馨的感覺。以至學生對朋友談起這種感覺時被朋友戲稱為“看技術文章也會有感覺的‘變態’”直到朋友看過您的文章才得以平反HEHE。在這裡學生願您在新的一年裡寫出更多更好的技術書籍。

先生的技術文章讓我尊敬﹐而先生所寫的一系列散文和《無責任書評》卻使學生十分崇拜(學生自問不是一個隨便的“偶像崇拜主義者”)。您的文章完全不象是一個技術專家寫的﹐看起來充滿了思想家獨特的想法和自己的見地﹐不象有些“腐儒”張口就是被灌輸的“標準的東西(由國家灌輸的並且為國家服務的人生觀﹐價值觀﹐世界觀……等)使人看到後能馬上了解和接受先生的想法﹐並且有一些段落更能使人豁然開朗﹐猶如讀哲學文章(不指晦澀的哲學文章)一樣。譬如《大陸講學記》中關於銀行‘黃老總’現象的議論就對我很有啟發﹐先生那段“……我知道我們許多人這樣﹕樂意(甚至故意)讓自己的理智被自己的情緒或意識形態牽ぴ走﹐以自己希望賦予的意義來解釋自己所看到的一切。那麼﹐看或不看其實也就沒有了意義﹐一切都已成形、定形。這當然是可悲的。感官不復存在﹐只剩成見﹐只剩意識形態﹐這當然是可悲的。”實在是讓學生受益不淺。對待事情的看法也大大改觀﹐換之以先生的話就是“提昇了一個檔次”。還有很多文章也是如此﹐由於考慮先生的時間。恕學生不在此一一列舉。

學生才疏學淺﹐並且顧及先生工作﹐不敢耽誤先生太多寶貴時間﹐在這裡就不提技術方面的問題來叨擾先生了。斗膽向先生
提下面幾個建議

1﹕先生的“書籍價格並不是看頁碼﹐而是看內容”的見解學生很是讚同﹐但這樣盜版(注2)的問題就會猖獗起來﹐建議先生在大陸日後所出圖書均以豪華精裝本出版﹐並適當提高售價。這樣雖然不能完全制止盜版﹐但起碼可以起到削弱盜版的作用──使盜版再不會和正版混雜在一起(盜版不會下大力氣去做包裝)。可以使想買正版的人切實的知道自己所買到的確是正版。
2﹕先生所譯圖書是否可以每本做兩種版本。一為單獨譯本 二為單獨譯本+英文影印本(想來先生也有此想法吧﹖大陸可以發行“影印版”不正是好機會嗎﹖)因學生以及很多朋友都想練習看英文版的書籍﹐但由於渠道和能力(由於沒有中文對照﹐就算買到了英文原本硬讀下去﹐也很難在英文閱讀方面有所突破)方面的原因一直很難實現﹐如果能推出中英對照版本的話﹐相信很多人都會非常高興的。
3﹕先生乃一台灣學者﹐也許對大陸的政治環境不甚了解。學生在先生的《10/05/2000大陸講學記》中看到以下兩句....(侯捷略)先生可要謹慎了。大陸這邊對言論的控制一向十分嚴格﹐而且奉行“中共一貫最正確﹐一貫最民主﹐一貫最講人權”若是先生的言論被這邊的“好事者”看到﹐相信不要說是發行新書了﹐也許就連先生的網站也會成為“無法聯結的地址”學生實在不想失去一位良師。(先生不見台灣的歌手張惠妹嗎﹖就因為歌詞裡有什麼言論就被大陸這邊“勒令”所有電視臺聯合封殺了。由於學生並不追星﹐具體情況學生不太清楚﹐若是引喻失意還請先生不要見笑。“注3”)

耽誤了先生這麼多寶貴時間﹐學生我實在不好意思。寫信時正逢春節﹐學生自然不能免俗﹐在這裡給您拜年了﹐祝先生在新的一年﹕
閤家歡樂
事業有成
多出新書
身體健康

學生于農曆初二 晚22﹕08

此致 敬禮
(好久沒有寫信﹐詞不達意之處還請先生指正)

*注1與注3若是先生不感興趣不看也罷﹐注2還請先生作為出版定價時的參考。

注1﹕學生初中(小學時對老師的感覺都忘了)時沒有遇到明師。所遇之人都是一些“刻薄的婦人”所遇批評不是諄諄教導卻是一些狠毒的咒罵﹐與刻薄的嘲笑。不要說“和你討論內心世界&象媽媽那樣慈愛”了。跟本就是抱定了不負責任的“管理小孩拿工資”的態度去做工作的。由於學生那時太不懂事﹐為了和她們賭氣而荒廢了學業(我也曾捫心自問﹐我這樣想﹐是否是為自己這段錯誤的歷程“推卸責任”或是“給自己找借口”呢﹖答案總是NO﹗)至使連高中都沒有考上(在大陸高中是要考上才可以去上的﹐不曉得台灣是否如此)幸虧大陸有“高等教育自學考試”可以使學生接受高等教育﹐不過既然是自學﹐那老師講課當然就不多了。(大陸的自學考試的政策是這樣﹕通過自學或者配合聽課的方式考過16門功課拿大專文憑﹐再考過15門課拿本科文憑與學士學位。)所以在這個階段對老師也沒有什麼印象。因而學生所說“自問此生還從未對教師如此尊敬”確是由內心而發。

注2﹕不知道先生大陸之行有沒有去過大陸的“電腦城”(幾乎每個城市都有)如果去過的話﹐先生以為裡面的景色還算“壯觀”吧﹖上千家的櫃檯公開在外邊擺ぴ一簍一簍的盜版光盤﹐幾乎什麼都有﹐WINDOUS98到XP﹐VC6.0到VCD﹐輔助設計到電腦游戲…………無所不包。皆是4RMB一張(相信您的眼睛﹐您沒看錯)。圖書的市場也好不到哪裡去﹐書商總是喜歡進一些進價便宜的盜版圖書﹐聽說還有專門銷售盜版圖書的市場。(學生這裡倒是沒有﹐只是聽說)學生就曾見過一個“奇觀”﹐這裡講給先生聽聽﹐作為笑話(雖然不是很好笑)那是在所謂的“文化市場整頓”的時候---一個上千家盜版盤銷售商的大市場﹐門口突然一聲﹕“檢查的來了﹐快收起來”於是所有商家便都迅速地(真懷疑他們是否都經過培訓)把自己的盜版光盤收拾起來﹐放到了櫃檯下邊。那聲音真是震耳欲聾﹐錢塘江大潮都猶為不及。3分鐘後櫃檯上干乾淨淨﹐大家都“輕鬆愉快地”準備迎接檢查人員的到來……先生也許要問﹕“檢查的那麼笨﹖他們難道不檢查櫃檯裡面嗎﹖”HEHE這您也許就不明白了﹐這正是大陸官僚們的聰明之處。------櫃檯上面沒有就得了﹐上司也沒說要檢查櫃檯裡面﹐反正我來檢查過了﹐也不算瀆職。櫃檯裡面﹖誰閑得沒事找那個麻煩﹐管那個“閒事”還是早點回去喝點茶看點報紙的好。先生認為怎麼樣﹖學生親眼所見…………嗚呼﹗

注3﹕其實大陸的民主情況...(侯捷略)…………………………………………………………………
越寫越激動﹐一下子就把注3寫了這麼多。也不曉得先生你會不會看﹐不過把心裡話講出來了﹐
無論先生看不看起碼心裡舒服多了

●侯捷回覆:我看了。讀者的每一封信我都看。

你的三個建議,回覆如下:

(1) 豪華精裝版會導致售價大幅提昇,很多學生會更拮据。目前的裝禎我已滿意,內外配得起來,有了對書籍的尊重(《深入淺出MFC》1e的封面,好像商場目錄,真真不忍卒睹)。至於你著眼的「防盜版」目的,我想…無論如何…對於盜版我都是無能為力的。我詢問過的大陸朋友都告訴我,電腦書不會有盜版。唔,無論如何,我無法處理的事,由它去吧。

(2) 單獨譯本+英文影印本,這讓出版社去傷腦筋。他們會看到你的提議。

(3) 讀者來信是我的回憶,我總是來函照登。不過,政治方面不登。

 

 



傳送日期: 2002年2月14日 PM 11:10
候捷(請允許我這樣叫一個前輩):您好!!

看了您的主頁,感覺您c++很厲害,我想請教一二,望指點!

我現在這在學這東西(C++),感覺有點摸不ぴ頭腦,請您介紹點經驗,介紹給我兩本好點的書,我還
想找<<Thinking in C++>>這本書的源代碼,你如果知道請告訴我在哪了:),好了,就這些!
謝謝!!
一個迫切想學好C++的人

●侯捷回覆:使用搜尋引擎。


 

傳送日期: 2002年2月15日 AM 11:35
侯老師﹕您好﹗
我是大陸一名計算機愛好者﹐一向非常喜歡您的文章﹐非常敬佩您的精神。
我學習計算機是為了中國﹐因為中國軟件現狀令人堪懮﹐所以我想做個程序員做好軟件﹐讓全世界都來用中國軟件。而且編程本身就是一件樂事。

不過我剛剛起步﹐高深一點的技術書籍是不敢看的。由於學習的需要﹐我首先學的是C語言。現在書店裡有一本C語言教材﹐中文名〈〈C語言程序設計實用教程〉〉﹐英文名“Applied
C: An Introduction and More”﹐作者﹕Alice E.Fisher, David W.Eggert﹐譯者﹕裘嵐﹐張曉芸。我的困惑是﹕如果選擇英文本﹐擔心不能完全讀懂﹔如果選擇中文本呢﹐又怕譯的不透﹐被帶入歧途。所以我想請教侯老師﹐
請您幫我在中/英之間做個抉擇。或者有更好的C語言教材﹐煩勞侯老師推薦一兩本。好書乃良師﹐選好書于我十分重要﹐而侯老師是我心目中最值得信賴的前輩﹐所以不恬向老師請教﹐謝謝﹗

另外說些閒話。雖然囿于水平﹐不敢拜讀〈〈深入淺出MFC〉〉等高階書籍﹐但是老師在〈〈程序員〉〉上發表的文章我無一遺漏﹐逐字斟酌﹐反復掂量揣摩﹐特別是〈〈程序人生〉〉一文﹐真是令人振奮﹐以至合上書時竟有一絲悵然和失落。像我這樣未入流的後生﹐非常需要前輩們在前進的路上有力的指引﹐告訴我們路在哪兒。因此再次感謝侯老師﹗
真誠希望得到老師的指導和批評。
祝老師身體健康﹐萬事如意﹗

●侯捷回覆:我不能幫你抉擇。你的狀況你自己最清楚。可以的話,兩本都買,先看中文版,有了大局觀,再看英文版。但我查了一下 Amazon,這是 1136 頁的大塊頭,想必不便宜。手頭拮据的話,先上論壇問問此書翻譯品質,如果還可以,買中文版吧。1136 頁英文,不知你要 K 多久。(奇怪,C 語言哪來那麼多內容可講)


 

傳送日期: 2002年2月16日 PM 12:14
候俊杰先生  您好﹗
我剛剛買了《深入淺出MFC》第2版﹐2001年12月第8次印刷﹐我是一位將要畢業
的計算機專業的學生﹐我學C有二年多了﹐去年接觸VC++6.0﹐可是我到現在還入門
不了﹐這MFC真的讓我吃了不少苦﹐我現在看了這本書的第一章﹐不是很難懂。但是
該書是用語言是VC++5.0﹐我在學習中該主意一下什麼問題﹐我該怎樣學習才比較合
適﹐請多多指教﹗

●侯捷回覆:《深入淺出MFC》用的語言是 C++,不是 VC++ 5.0。VC++ 不是語言,是一種編譯器兼開發工具。此書基本相容於 VC++ 6.0 & MFC 4.2,縱有一些小差異,由於我講的是核心運作,和你的程式開發無第一線接觸關係,所以對你的編程沒有影響。


 

傳送日期: 2002年2月16日 AM 11:29
居住省份(臺灣讀者??縣市)﹕廣東省
對侯捷的建議﹕我是在看CSDN時知道你的﹐看過你的幾篇大作﹐很高興能夠在大陸的雜誌上看到你
我一直在尋找一本我看得懂的書﹐我看廣州的計算機圖書很多﹐
沒有幾本看完後能夠使我真正清楚了解裡面的內容﹐後來偶然在網上看到一些電子圖書﹐發現這些書好看許多﹐於是就開始尋找這類書了﹐呵呵∼

●侯捷回覆:書看不懂,有時候是因為作者寫得不好,有時候是因為讀者基礎不夠。每本書都有自己的定位。

 

 

傳送日期: 2002年2月17日 PM 10:03
> 老師您好 :
> 最近的這幾天我讀了您的
C++物件模型 , 花了整整兩天的時間才讀到
> 第四章 , 之前閱讀的時候感覺非常深澀難懂 , 不過自從將您的多型與
> 虛擬讀完之後 , 感受真的和以前完全不一樣 , 以前讀
多型與虛擬的時
> 候 , 總是跳過其中的第二章 , 貪圖後面章節的簡單易讀 , 總是捨棄最
> 難讀懂的地方 , 最近重新閱讀後感覺若要理解這一部份的程式碼, 我
> 覺得多少都要有一點編譯器的理論(還有assembler的設計方法),不過當
> 我嘗試閱讀物件模型後 , 我感覺第五章之後的內容真的加深許多 , 我
> 覺得應該是我的程式語言基礎不足 , 因為我在讀一至四章的時候總有
> 一種意猶未盡的感覺(好像作者要講出什麼東西 , 但在要講的時候卻
> 換了一個新的主題) , 不過我可以給老師一個建議 :
我在閱讀多型與
> 虛擬第五章的時候 , 是在將深入淺出MFC第三章之後的五個小節大略
> 讀懂之後才進入狀況的
, 而這個部份就花了我將近一年多的時間才弄通
> 可是弄通之後我覺得行雲流水 , 再讀許多書的時候就能感受到老師所說
> 的感覺
, 真是可悲呀! 當初大一就買的多型與虛擬要到大三的時候才
> 讀得懂 , 大二買的物件模型要到現在才懂得四成 , 所以我在老
> 師網頁上看到有人說他將您的書只花了十天就讀完 , 我真的懷疑他是否
> 有讀到書本後的意思 . 只是在看老師的網頁時有感而發 , 盼老師能再
> 多譯一些系統層級的好書 , 讓我們學生能習得高階技術的入門技巧 ,
> 使台灣整體的資訊水平更向上提昇!
>
> 祝老師
> 新年快樂

●侯捷回覆:你不應感到可悲,你應慶幸。《多型與虛擬》和《深入淺出MFC》在臺灣都已絕版,很多人找不到書呢。這些書本來就有相當深度,需要不少編程基礎。你在大三時期苦修了它們,對你很有幫助。

看著你字裡行間透露出來的成長喜悅,我也開心了起來。

接下來,你有能力看《多型與虛擬》2e 的MFCLite3了,不多,5,000 行,OO 精髓儘在其中。

 

 

傳送日期: 2002年2月18日 AM 09:56
主旨: about win32 programming books

> Hello, Mr. Hou
>
> I have been working as a programmer for 2 years.
> Mostly I work on UNIX.
> Recently I want to expand my interest to MS Windows.
> Most people including you suggest Petzold's book and I indeed buy a copy.
> But there's a book also having high credit on Amazon:
>
> Win32 Programming (Brent E. Rector, ISBN: 0201634929)
>
> I have not had a chance to read it 'cuz it is sold out in Taiwan.
> Have you ever read it?
> How do you think about this book, comparing to Petzold's?
>
> Thanks a lot.

●侯捷回覆:是的,我有你所說的《Win32 Programming》,但我沒有細看。

為什麼?

曾經滄海難為水  除卻巫山不是雲

看書看經典。Win32 programming(或言 SDK programming)的書籍你只要看過以下三本,其他可有可無:

1. 《Programming Windows》by Charles Petzold, Microsoft Press.
2. 《Windows 95 : A Developer's Guide》by Jeffrey Richter and Jonathan Locke, M&T Books
3. 《Advanced Windows》by Jeffrey Richter, Microsoft Press.

第二本已絕版(中文繁體版可於侯捷網站下載),我估計 95% 以上還有用,畢竟 Win32 就是 Win32,不論是 Win95, Win98, WinNT, Win2000, WinXp,都是 Win32。第三本已有新版,名稱也改了。

這三本書在不同層次講述 Win32 programming。書評見…,啊,散落各處,我也忘了,你把無責任書評 1,2,3 + 侯捷散文 98~99 瀏覽一遍,定能找到。97/06 選義按部,考辭就班

或有遺珠之憾。但是「泰山北斗已現,又何必案牘勞形於墨瀚書海之中!」。

我的看書哲學是:
1. 看書看經典
(s)。
2. 要認識一個領域,不能只看單一本書。
3. 當我所看的書
(s) 已經涵蓋領域知識的極高百分度,我就不想再花時間通讀其他書籍了。其他書籍上的獨特主題可能會吸引我,我會把它們放在架上備查。

 

 

 

傳送日期: 2002年2月18日 PM 04:44
您好: 今天去了您的網站之後,獲益良多,不知是否有關於資訊人員的未來規劃這方面的見解,因為我在這領域2~3年了,一直很茫然,不知要怎麼走才會長久,如果一直走程式設計師,那老了一定拼不過年輕人,不知您是否可以提供一條不錯的參考路徑,可以讓我參考,真的非常感激您,目前正決擇在十字路口中!!

●侯捷回覆:我想得到的,都是你想得到的。

想賺大錢:創業
想有完全自己的天空:創業
熱愛學術技術:鑽研
希望有好的名銜地位:走管理路線
家庭好男人:上班認真,下班輕鬆;做份內事,領固定薪;絕不早到,絕不遲退。

有利有弊,有得有失。福兮禍所倚,禍兮福所伏。

創業:日以繼夜,夜以繼日,無日無夜,無夜無日。
學術(技術):你得有學術的堅持和定靜的功夫,忍受無數孤寂的夜晚。
管理:人比機器難搞(得多)。
家庭好男人:看別人飛黃騰達,免不了一絲落寞。

依個人的性向、興趣、才能、人生價值觀,選擇一條自己喜歡的路,努力充實這條路所需要的知識基礎,這就是了。

我想得到的,都是你想得到的。了無新意。

 

 

傳送日期: 2002年2月18日 PM 08:31
我是大陸的《程序員》的新讀者﹐有幸在雜誌上拜讀您的文章﹐獲益非淺﹐特向您表示衷心的感謝﹗
我近期還郵購了您翻譯的《effective c++》﹐相信定能從中汲取不少知識﹐在此先行謝過﹗也希望您繼續為《程序員》的讀者寫更多的好文章。

 




傳送日期: 2002年2月18日 PM 11:29
主旨: 多型與虛擬
侯捷老師您好,
您的"
多型與虛擬"這本書讓我找了幾個月而不可得, 不曉得
在該書絕版的情況下, 我是否仍有可能買得到您這本大作?

●侯捷回覆:新版(2e)將於近期完成。不要買舊版了。應該也買不到了。我完全不知道哪兒還有店存。


 

傳送日期: 2002年2月19日 AM 09:35
侯捷老師﹐您好﹗
我是一名來自大陸的大學生﹐對計算機很感興趣﹐一些編程書籍像樣的很少,有也特別的貴﹐而且這裡的教學質量不是很好﹐對編程方面的象您這樣的幾乎沒有﹗我真希望你能指導指導我﹐我也知道你很忙﹐
希望你有什麼好的作品能給我寄過來﹗
十分感謝您的理解和給予我們這些人的幫助﹗
居住省份﹕大陸西安市
對侯捷的建議﹕您的謙遜﹐博學﹐努力永遠是我學習的榜樣﹗



傳送日期: 2002年2月19日 AM 10:38
主旨: questions about the book <essential c++>
here is a question about the book you have interpreted:Essential C++
which compiler does the writer use ?
I use Visual C++ 6.0,(not use MFC)
I can not compile the code.
one example is that I have include the string.h,but the charter "string"do not turn blue ,the original code is on the page 5 int that book.

●侯捷回覆:VC 不符合 C++ Standard。見 C++ 標準與實作之間

 

 

傳送日期: 2002年2月19日 AM 11:25
主旨: 向侯捷先生請教購書問題
> 侯捷先生,您好!
> 我在您主持的無責任書評中MFC四大天王,看到您推薦Kruglinski Visual
> C++4.0,而且您曾翻譯過這本書,不過我在書店中始終找不到.
> 我唯一能找到的是Kruglinski Visual C++1.5, 不知道能否購買?您在書評中曾
> 說此書是工具導向,visual C++版本悠關全書內容.目前我使用
> 的Visual C++是6.0 版本,目前我對Visual C++ 6.0工具操作還算熟練,而您的大作"深
> 入淺出MFC"我大致已閱讀完畢,不知道能否克服版本差異
> 來閱讀Kruglinski Visual C++1.5?另外您翻譯的"深入Visual C++"不知道在何處可購
> 得?
> 臺北 HoraceHsu <horacehhsu@benq.com>

●侯捷回覆:《深入Visual C++ 4.0》早已絕版 N 年。我想你買不到。
《深入Visual C++ 1.5》採用 VC1.5,for Win16,
《深入Visual C++ 4.0》採用 VC4.0,for Win32。
雖然其中許多概念可通,但若你對VC和MFC陌生,恐怕沒有能力互替。

 

 

傳送日期: 2002年2月19日 PM 11:03
居住省份(臺灣讀者請寫縣市): Dallas, TX
對侯捷的建議: you are such a greater writer, please produce more materials for us.
永續慧命
Thanks.

 

傳送日期: 2002年2月20日 AM 03:25
候先生﹕您好﹗﹗
我有過一些程序設計的基礎﹐但大都泛泛﹐不曾有過什麼甚解。。。。。。而今﹐想正式的學點東西﹐便想從VC學起﹐於是。。。。。
我在盲目的學VC﹐突然發現自己要看C++﹐看了一些﹐大概有個概念﹐明白此類非彼類﹐虛擬重載累。。。。暈個楞登的。。。
居然又發現API是需要接ぴ看的﹐那些句餅什麼的。。。。。。雖然說API函數不必刻來研究每一個函數的用法在需要的時候去查API幫助就足夠了
但是﹐就是不明白如何在VC中那些古怪的句柄之類如何來之﹐卻又如何用之﹖﹖
WINDOWS的消息機製。。。。SDK。。。。。MFC。。。。
如何進行﹖﹖下手﹖﹖﹖。。。。。。。。
救命啊。。。。。給我指點一下吧﹐就算是茫茫大海上的一個小燈籠﹐一根稻草﹐在下也感激不勁。。。
懵懂之人。。。拜上﹗﹗﹗

 

 

 

傳送日期: 2002年2月20日 AM 11:59
侯捷老師﹕
謝謝您的指導﹐不過那個程序(例程hello.06)我又看過了﹐確實存在問題﹐不知道您手中的程序是不是這個版本﹐至少在我這裡是有問題的﹐程序中﹕
void CMyFrameWnd::IdleTimeHandler(LONG lCount)
{
CString str;
CRect rect(10,10,200,30);
CDC* pDC = new CClientDC(this);

str.Format("%010d", lCount);
pDC->DrawText(str, &rect, DT_LEFT | DT_TOP);
}
new出來的pDC沒被delete,應該是個典型的memory leak﹐而這個函數不斷執行﹐memory都leak就沒了;當是給您寫信的時候我還不知道這些東西﹐就想了些辦法把pDC做成成員變量了﹐只new了一次﹐其實還有泄漏。現在看來﹐只要在函數後加上 delete pDC﹔就行了﹔
不好意思﹐又耽誤了您的寶貴時間。

●侯捷回覆:原討論
你說的對,應該在上述函式結束前加上 delete pDC。我手頭書上早已註明,但程式本身和紙本內容都未改。我會把它加註於勘誤表中。謝謝你。你這麼做並非耽誤我的寶貴時間,而是幫我完善我的書籍,我很感激。

 

 

 

傳送日期: 2002年2月20日 PM 05:53
侯老師﹕
在大陸有潘愛民先生翻譯的《COM 本質論》﹐DON BOX 著﹐我知道老師您也翻譯了這本書﹐不過書店裡我只看見了潘先生翻譯的這本書﹐是中國電力出版社出版。老師好像和潘先生很熟﹐不知道潘先生是否和老師一樣對讀者有責任心﹐以及很好的技術功底和文字表達能力﹖我對侯老師是很信任的哦﹐我只要看到是老師翻譯的書可是毫不猶豫地拿下的呢。
麻煩老師對這本書給點意見哦﹐是不是一本好的值得買的中文版書籍﹖

●侯捷回覆:我未曾看過愛民翻譯的《COM本質論》簡體版(我有自己的譯本,不會再撥時間看愛民的譯本,我手頭上也沒有這書)。愛民的技術很好,又是知名的 COM專家(他的COM技術水平肯定在我之上),文字也很順暢。我對他有信心。但是一本書的調性是否與你相符,你得自己瀏覽一下才能有所感覺。

 

 

 

傳送日期: 2002年2月21日 AM 12:22
侯先生﹐您好﹐
您的著作和譯作﹐對我們都產生了很深的影響﹐您富于藝術性和創見性的
文字﹐讓我們感覺到
學習計算機的頗有意味﹐而這些高質量和水平的書籍﹐極大地
提高了我們的知識應用水平。而我來說﹐對於國外學者的書籍的興趣越來越濃﹐我
是一個喜歡走在前面的人﹐我很想早些看到英文原著。雖然我的英文不夠好﹐但
基本看懂還是沒問題﹐而等中文版本出來往往要一段時間﹕
我如何可以在中文版本
出來前看到英文版本﹖我需要另外交費嗎﹖

順祝 身體健康﹐工作順利﹗
深圳

●侯捷回覆:不很懂你的意思。如果是我的著作,只有中文版(目前。但相信你也不會想看我的英文著作 — 如有的話,那是給外國人看的,中國人看中文原版當然最爽)。如果是我的譯作(或任何其他外文書籍),你可以購買原文版。我不知道從大陸購買原文書的管道,我住在臺灣,這方面的問題我不可能清楚;好像 china-pub 和 CSDN 都有開通。

 

 

傳送日期: 2002年2月20日 PM 11:19
侯先生﹕您好﹗
我現在一邊下載您的《深入淺出MFC》﹐一邊在打印您翻譯的《WIN95系統編程大奧秘》。
我是一名編程愛好者﹐來自新疆。
我想所有看過您的書的人﹐都會從中汲取到豐富的知識﹐都是您的學生。
我今年已近而立矣﹐看見您的好書仍是不由得想一睹為快。
不是我捨不得掏錢買您的書。而是
所居地處偏僻﹐根本無緣得見先生之紙質書
無奈只有下載電子書後再打印之。
我是一男士﹐耽于電腦而至今尚未婚﹐不知天下如我者有幾多﹖
先生之于後輩學者﹐貢獻可謂大矣﹗
唯望先生善自珍重﹐為信息事業做出更大的貢獻。


●侯捷回覆:歡迎你下載並打印。我比較奇怪的是,為什麼不利用網絡書店購書?你不必辛苦打印,印表機的耗材和紙張以及人力時間都可以節省下來,又比在實品書店買有折扣。我給你介紹兩家:華儲網上書店 www.huachu.com.cn和上海新風雨 http://www.cnforyou.com

網絡用來賣書,是最理想的媒介了。我看過不少這樣的帖文:『如果北京(或上海或南京或武漢…)也有一家網上書店就好了』。咄,網絡書店開在哪兒有什麼關係?在南極也可以呀(只要郵費他出)。網絡書店雖然開通了,但好像大家的觀念還沒有開通 :) 

 

 

傳送日期: 2002年2月21日 AM 09:12
侯捷先生:您好!
我想學習編程﹐請您幫我推薦幾本
在大陸可以買到的﹐介紹數據結構和算法的書。謝謝﹗

●侯捷回覆:我住在臺灣,這方面的問題我不清楚 :)

 

 

 

傳送日期: 2002年2月21日 PM 01:26
居住省份(臺灣讀者請寫縣市):台北縣
對侯捷的建議:侯老師您好,在下之前已經看過老師所譯的C++ Primer,今日在程式設計俱樂部網站上得知原來老師已將著作放在網站上供人下載, 在下對於老師的學問與氣度十分欽佩,在此感謝老師對於我們這些後進所提供的幫助,祝老師身體康泰、順心如意。

 

 

 

傳送日期: 2002年2月21日 PM 03:02
候先生好﹕
有幸看到同事轉貼 汗如雨下&英雄貼﹐進而登錄http://jjhou.csdn.net/﹐了解候先生一點情況﹐很是敬佩﹐在下以為要用四個字描述先生的話﹐技術精英是當之無愧的。
小弟一無是處﹐不過也比較喜歡讀書而已。推薦先生一個不錯的網站﹐http://202.100.218.137/ffbaodian/j009/ 仔細讀此﹐定有收穫。
衷心祝愿候先生事業順利﹐閤家幸福﹗不斷提昇人生境界。

 

 

傳送日期: 2002年2月21日 PM 05:32
Dear jjhou﹐
我最近發現
一個很奇怪的問題﹐定義一個類指針後﹐不用NEW分配空間﹐也一樣可以用。這是怎麼回事呢﹖

/******** CODE AS FOLLOWING﹕***********/
class A
{
public:
  A(){}
  ~A(){}
  int fun(){cout << "Hello" << endl;}
private:
};

int main(
{
A *a;
a->fun();
return 0;
}

/************ code end ****************/
output:
hello

為什麼會這樣呢﹖

●侯捷回覆:不奇怪。從 object model 的角度看,member function 就如同 non-member function 一樣,一宣告(或說定義)就佔用了記憶體。以 new 配置空間,配置的是 data members 而非 member functions。詳見《深度探索 C++ 物件模式》或《多型與虛擬》2e,ch3。

 

 

傳送日期: 2002年2月21日 PM 07:41
侯先生﹕您好﹐
我是大陸的一名大學生﹐也是您的一位忠實的讀者﹐今年寒假沒回家﹐幸運發現了一本先生的書﹐陪我度過了這個月﹐使我受益菲淺﹐感覺相當好。我想對先生說﹕先生辛苦了﹗
此致 祝先生永遠快樂﹗

 

 

傳送日期: 2002年2月21日 PM 09:07
侯先生﹕
你好﹗我是你的一名讀者﹐其實我很早就看過你的《MFC深入淺出》。這次下載了你的電子版﹐想保存﹗也算復習﹗看到你的留言﹐不敢辱命﹐填表如下﹕
居住省份﹕ 現籍江蘇(老家湖北)
MFC其實一直都是自學﹐最需要的就是好的書﹗但我一直感覺不好﹐我現在做MFC的東西﹐一般的我也會做﹐別人的東西照搬過來也會用﹐但就是覺得缺乏自己的想法。不知道怎麼辦才好﹗總覺得有什麼東西就是不清楚﹐但又說不出來有什麼不清楚﹐混身不痛快﹐總覺得編程不是用Ctrl+C 和Ctrl+V能了事的﹐但自己寫代碼的數量大了﹐我確實又吃不消。不知道我
這種想法正不正常。我到現在都不知道我該往MFC的哪個方面寫。還是要全面開工﹖ 我不怕吃苦﹐我經常通宵寫Code﹐但是﹐沒有方向性的指導是白費工夫﹐反而﹐讓我精神疲倦而無所得﹐希望侯先生給我指個方向﹐好讓我有的放矢﹗希望侯老師能在萬忙中給我開導一下﹗
非常感謝﹗假如因為閱讀我的信件使侯老師耽擱了時間﹐那就更是過意不去﹐還忘侯老師見諒﹗




傳送日期: 2002年2月22日 AM 11:36
您好﹕
我是內地武漢大學計算機科學與技術系的學生現在正在瀏覽您的jjhou.csdn.net﹐讀完The Road Not Taken感觸良多﹐渴望能與您交流有關學習生活道路選擇的問題。

我從“人生到處知何似 恰似飛鴻踏雪泥 泥上偶然留指爪 鴻飛那復計東西”
以及“我選擇了較少人跡的一條﹐使得一切多麼地不同”中
能體會到您內心深處的一些微妙但又極為深刻的人生感觸。生命如歌。時光如風般飛逝﹐而我們也不可能再重來一次。找准自己的人生定位很重要。可是我總是有一事不明瞭﹕
做技術工作的人﹐是應該找尋自己最感興趣的工作﹖還是應該依據自己的力量(在自己可以選擇的範圍內)來選擇最具功利性的工作﹖

這也是一個很普遍的話題﹕
學習知識就是為了就業麼﹖以及就好業麼﹖在這個問題上的態度以及最終做出的選擇必將決定人生的道路就如你所說的﹕“黃樹林裡分叉兩條路......”希冀能收到您的來信﹐您每天有許許多多的問題﹐不必每個都做回答。但是關鍵的問題﹐還望您能不吝筆墨﹗

●侯捷回覆:你觸動我的心緒。

人生工作應以興趣為重。但我知道很多人無法如此 — 即使他們已經明確知道了自己的興趣。每個人身上都背負責任,都有自己的功課要做。

大部份人,興趣不那麼絕對。賺錢也可以是興趣,功利也可以是興趣。賺錢和功利都不是壞事;只要不妨礙別人,都不是壞事。

事情做好了,做成功了,興趣也就來了。你說先有雞還是先有蛋?很微妙的。走入善性循環就很好,走入惡性循環就很可惜。

學習知識是為了就業麼?在很大一部份人中,很大一部份是。外在條件不允許的情況下猶能跳脫這種束縛的人,值得尊敬(但他的家人可能很辛苦)。要成就自己,還是成就別人…。

總之,要堅信兩件事情:
(1) 天生我才必有用。
(2) 上帝關閉了一扇窗,一定會為你開另一扇窗。

 

 

傳送日期: 2002年2月22日 PM 06:22
> 真心期待  《虛擬與多型》2版
> 雖然我已經有1版...
> 可否,當
出2版時可否以 Mailing List 方式告知...
>
> 對了,可否題外問一些非書籍的問題呢?
> 假使侯先生沒時間回,真的沒關係。
> 或,有時間看看囉...
>
> 我有一個問題,就是對於資訊人的一些周遭問題。
>
> 我不知侯先生是否有這種感覺。小弟真是感觸良多...
> 就是,對於資訊變化快速的時代,相對於有許多科技技術的發展。
> 但是,問題是:有些專業人員,甚至高學歷人員在資訊科技的專業
> 反而忽略人文素養,就是非常自大或是不可一世。我周遭時常有些
> 人,對於後輩時常自我高高在上,而不屑後輩一般人的問題。
>
> 這種感覺,對於學習真是一大阻礙。時常檢討己身的專業,漸發覺
> 學問的不足,而對於高學歷人員反而有時以某學歷對層級,反而高
> 築臺面,面對後生晚輩或是非等學歷的冷言語。
>
> 我不知道侯先生是否碰過,有時實是擔憂往後職場碰一如此上司或
> 是前輩,到時真是不知如何處理了... :(
>
> 侯先生會
如何面對『專業』與『人文』的衡準呢?
>
> 耽擱侯先生品書時間,別介意。
>
> 祝 侯先生 事事順心!

●侯捷回覆:好,《多型與虛擬》2e出版時當以 mail-list 通知讀者。

『專業』與『人文』的平衡,是個人修養問題。

聖嚴法師說:缺乏貴人的時候,阻礙我們的人都是我們的貴人(大意如此)。我於34歲時對此有所體驗(當然,當時是沒有體會的)。

 

 

傳送日期: 2002年2月22日 PM 06:59
1。為什麼對象向下切割不被允許﹗
class base{
  public:
  virtual void t(){}
};
class child : public base
{
  public:
  virtual void t(){}
};
void main()
{
  child a;
  base b;
  ((a)b).t();//錯誤﹔
}
能告訴我﹕編譯器內部如何實現轉型操作以及具體的內部行為﹔

2。基類的私有成員在派生類中不可見﹐但派生類的確繼承了它﹔能告訴編譯器內部如何實作的嗎﹖

3。我想知道
對象內部的操作原理能給我推薦本書嗎﹖(最好是您的著作)

●侯捷回覆:《深度探索 C++ 物件模型》繁體版簡體版
要看更精采的論述,請等待《多型與虛擬》2e, ch3。

 

 

 

傳送日期: 2002年2月22日 PM 10:23
候捷老師您好﹕
我是java的愛好者﹐我想請問一下
thinking in java 2什麼時候能出版﹐臺灣﹐香港出版的時間就可以了﹐我知道好像這書現在並不打算出簡體中文版。
麻煩老師能夠告訴我,謝謝。

●侯捷回覆:應能夠在 2002 第一季後不久出版。目前沒有任何握有簡體版翻譯權的出版社與我聯絡,因此侯捷譯本目前沒有簡體版計劃。我想應該已有他人的簡體譯本進行之中。

 

 

傳送日期: 2002年2月23日 AM 11:55
主旨: 有關C++ Primer 3/e 題解之問題
侯老師您好:C++ Primer 3/e 題解中,p.367.頁L-2提到
DrawableGeom: Geom, canvas之繼承方式為實作繼承(implementation inheritance),
是否應改為型別繼承(type inheritance)才對?

花了快一年的時間,總算快把這本大著K完了(這本書可算是我失戀期間最佳的精神食糧與慰藉呀 : )),實在獲益良多。感謝侯老師為我們著作與翻譯了這麼多好書,您出的書,我幾乎都買了,希望有朝一日能將它們全部仔細地閱讀完畢。
祝身體安康

●侯捷回覆:我是譯者,沒有權利改變書籍內容 :)

 

 

傳送日期: 2002年2月12日 PM 03:53
老師您好
學生想請您推荐有關於JAVA C#的書
以及
為何c# primer沒有繁體版

●侯捷回覆:翻譯書的主動權不在我。我只能給熟識的出版社建議,而他們拿不拿得到譯權,或是否認為侯捷來做最適當,都不是我能決定的。拿到譯權的出版社是否與我聯絡,也不是我能決定的。我是否決定與擁有譯權的出版社合作,這是我可以決定的,但很顯然,我處於一個被動立場 :)

 

 

 

傳送日期: 2002年2月23日 PM 09:45
侯老師: 您好!
在此我想對您網頁的勘誤表一點小建議,
可否對錯誤按時間進行排序?
因為勘誤表經常更新,有時時間一長了就
記不住哪些曾經改過,檢查起來很耗時.
所以有了這個點子.
您的忠實讀者:mark

●侯捷回覆:長久以來,我的勘誤表就是以日期來排序 :)

 

 

傳送日期: 2002年2月24日 PM 04:21
侯先生﹕我最近在作一程序是在WIN98下通過VXD來訪問dos方式下的內存地址但到現在
我也只能訪問dos方式下BIOS數據區, 在訪問其它的內存區域時有時可以﹐ 有時不行,請問這應如何是好, 我如果再作不出來, 我的經理就要炒了我了十萬為急﹐ 我的附件中有我的代碼你能不能指導指導我

 

傳送日期: 2002年2月24日 PM 08:56
候老師﹐您好﹐
我是EasyCode的作者﹐平日常學習您翻譯的書﹐對您認真仔細的工作態度很欽佩﹐不知道今後有關於C++的問題能否常來問您呢﹖

我是一個喜歡刨根問底的人﹐我今天買了一張 VS.NET 7.0﹐我想問的是﹐為何MICROSOFT 到如今還是沒有支持非 inline 的成員內模板函數﹖

例如﹕
template<typename T>
class X
{
public:
  template<typename U>
  void mf(const U &u);
};

template<typename T> template <typename U>
void X<T>::mf(const U &u)
{
}

void main()
{
}

而只支持 inline 的寫法

template<typename T>
class X
{
public:
  template<typename U>
  void mf(const U &u)
  {}
};

void main()
{
}

其他的BORLAND,INTEL C++﹐ GCC 這些編譯器都已經支持了這種寫法﹐
為何唯獨 MS 不支持呢﹖謝謝您﹐感謝您能在百忙之中閱讀我的信件。

●侯捷回覆:我無法代 Microsoft 回答任何問題 :)

 

 

傳送日期: 2002年2月25日 AM 09:03
候先生﹕你好﹗我是你的忠實讀者﹐已經讀完了你翻譯的《Essential C++》簡體的﹐現在正在讀你的《深入淺出 MFC》,讀到第3章﹐但我在VC6.0上調試Frame1時﹐無法通過﹐不知為何﹖請幫忙﹗我的步驟是﹕new->project->Win32 Console Appliciation,請告訴我在Window環境下的具體步驟﹐謝謝﹗﹗

●侯捷回覆:書上對於此程式的 building 步驟非常詳細。(console mode)

 

 

傳送日期: 2002年2月26日 AM 09:31
主旨: NRV Optimization
> Dear Mr Hou,
>
> I am reading your translation of Lippman's "Inside the C++ Object Model"
> (Mainland Chinese version). When talking about NRV optimization, I believe
> there are some problems in Lippman's statement and your translation note. In
> the book review
>
> http://www.accu.org/cgi-bin/accu/rvout.cgi?from=0ti_i&file=i000633a
>
> Glassborow writes that "it is argued in the book that NRV only kicks in when
> copy constructors are explicitly defined rather than default synthesised by
> the compiler; the language puts no such illogical restriction in place".
>
> In fact, even your practice with MSVC confirmed this, for MSVC does have NRV
> optimization. Borland C++ Compiler 5.5 has the same behaviour with MSVC:
> adding a copy-constructor will only slow the test program on pp. 67-68. GCC
> 2.95 seems not affected having a user-defined copy-constructor or not.
>
> I don't think you will think none of these three compilers has NRV
> optimization. So the conclusion is obvious that Lippman must be wrong on
> this point.
>
> And I hope you would correct the notes when there are any chances.
>
> Best regards,
>
> Wu Yongwei

 

 


傳送日期: 2002年2月26日 PM 09:47
侯先生您好,不知我的笨問題會不會佔用您寶貴的時間,
最近醉心於鍵盤 driver 的撰寫
想以得到鍵盤內建控制碼的方式來控制鍵盤上的特殊按鍵
目前已經設計到...(配合 SPY++ 使用,因特殊原因無法使用MFC):

HWND fwnd;
fwnd = FindWindow("WMPlayerApp","Windows Media Player");
SetFocus(fwnd);
if (FindWindow("WMPlayerApp","Windows Media Player") != NULL){
  SetFocus(fwnd);
  static char AppName[] = "Win";
  fwnd = CreateWindow(
    "WMPlayerApp", // the window class name
    "Windows Media Player",
    //"A Basic Window the Hard Way", // The window title
    WS_OVERLAPPEDWINDOW, // Window style as overlapped
    CW_USEDEFAULT, // Default screen position of upper left
    CW_USEDEFAULT, // corner of our window as x,y...
    CW_USEDEFAULT, // Default window size
    CW_USEDEFAULT, // ....
    0, // No parent window
    0, // No menu
    hInstance, // Program Instance handle
    0 // No window creation data
  );
  OpenFile("C:\Program Files\Windows Media Player\wmplayer.exe");
  keybd_event(0x11,0,0,0);
  keybd_event(0x41,0,0,0);
  keybd_event(0x11,0,1,0);
  keybd_event(0x41,0,0,0);
}

希望能以鍵盤特殊鍵控制 Windows Media Player 的開啟,若已開啟的話就設為焦點以便控制
現無法解決的問題就是
1.無法取得(特殊鍵)硬體編碼
2.無法開啟 Media Player
3.無法讓程式取得註點
另想請教您有無 "API" 或是 "硬體控制" 的資源,感激不盡...

 

 

 

傳送日期: 2002年2月27日 PM 05:08
尊敬的侯先生﹐您好﹐請問c++Primer中文版在大陸(北京)可否買到﹐盼復﹗

●侯捷回覆:請聯絡 CSDN,看看還有沒有進書。

 

傳送日期: 2002年2月27日 PM 05:26
侯老師﹕
你好﹐最近讀
《Essential c++中文版》﹐發現第176頁最下面‘remove_value()擁有兩個參數﹕將被刪除的值(如果存在的話)以及一個指針﹐指向目前關注的節點的父節點。’我覺得不是關注節點的父節點而應該是節點本身﹐如果是父節點﹐我在程序中帶入始終不正確﹐弄得我現在很迷惑。可能是我太笨了吧﹐你只需要告訴我究竟是父節點還是節點本身﹖
非常感謝你為我們翻譯了這麼好的書﹐打擾了﹗謝謝。

●侯捷回覆:原文是 remove_value() takes two parameters : the value to be deleted, if present, and a pointer to the parent node of the node currently under examination。我想我大約沒有譯錯。至於原書有無表達錯誤,我得把書上整個程式追蹤一遍,才能回答你,這超過了我的服務(我是譯者 :))。如果你能證明你是對的,請舉證,我將循你的足跡驗證之,並在證明你是對的之後,納入勘誤表。或者你可以去信詢問原作者 Lippman :)

 

 

傳送日期: 2002年2月27日 PM 07:09
侯老師﹕你好。我是一位大三的學生﹐半年前開始拜讀你的大作《深入淺出MFC》﹐獲益良多。但近來visual studio.net鬧的沸沸揚揚﹐心中不免冒出一絲納悶﹕
ms會不會停止對mfc的支持甚至放棄它呢﹖請老師指點迷津。

●侯捷回覆:Visual Studio.NET 中的 Visual C++.NET 仍然有 MFC & ATL,這便回答了你的問題。我有一篇文章,刊於三月份台北《RunPC》雜誌和北京《程序員》雜誌,其中對這個題目談了一些。

 

 

傳送日期: 2002年2月28日 AM 11:45
尊敬的侯先生﹕
有幸拜讀Essential C++中文版﹐P186 有不解之處﹐不知是否印刷錯誤﹖請指教。
第一段文字﹕less-than運算符 是否指 < 運算符
第二段代碼﹕第一行 typename comp=less<elemType>
是否應改為 typename comp=less-than<elemType>
謝謝﹗

●侯捷回覆:
less-than運算符 是否指 < 運算符,是的。
是否應改為 typename comp=less-than<elemType>,不是。
less-than operator 是一個名稱。
less<elemType> 是一個 STL function object.

 

 

傳送日期: 2002年2月28日 PM 05:02
居住省份﹕北京
對侯捷的建議﹕很感謝你的ebook,開放電子圖書也許使你少賺了些稿費﹐但我相信您和廣大讀者的收穫一定更多﹐祝你的事業錚錚日上﹐也希望早日讀到你的新書

 

 

傳送日期: 2002年2月28日 PM 05:33
侯老師﹕您好﹐我是一名計算機專業的學生﹐喜歡編程﹐很想成為一名程序員。
我現在已經學習完了您的《深入淺出MFC》﹐《Inside VC++》的基礎部份也快學習完了﹐對於VC的基本概念已經建立起來了﹐將來我也想用VC做為我的主要開發工具。另外我的數據結構、操作系統等課程學習的也還不錯﹐所以我覺得我將來還是有資格做一名程序員的﹐但是我現在比較缺乏的是對IT領域實際情況的了解。
所以我有一個問題想向您請教﹕
我現在想選擇某一個開發方向繼續深入的學習﹐比如﹕數據庫方面、圖形圖象方面、網絡編程方面等等﹐但我對各個開發方向不是很了解﹐所以想向您請教以下的幾個問題﹕
1 您覺得VC比較適合開發什麼項目﹖
2 在程序開發方面都有那些開發方向﹐這些不同的方向﹐日後具體從事什麼樣的工作﹖
3 您認為各個開發方向的具體情況以及發展空間如何﹖
4 對於每個不同的開發方向﹐您認為應該分別深入的學習哪些知識﹖

這些問題﹐我不願意到論壇上去問﹐因為我覺得在那裡很少能得到可靠的答復。我讀過您的書﹐看過您寫的文章﹐很信任您﹐覺得您是一位值得尊敬的師長。所以﹐希望您能抽出一些時間給我一個答復。
□□在此不勝感激。
最後﹐祝您﹕身體健康、心情愉快。


●侯捷回覆:你的提問範圍太大,超過我的興趣和能力。

-- the end