程序沒有bug。。。。
要么是你的程序過于簡單,要么只能說明你的程序已經很健壯了。
沒有Bug的事情的確很難想象
re: 大家看一下這個問題 LOGOS 2006-06-10 21:42
程序關閉后,他所占用的內存空間會被系統回收。
不過我不能確定sListen是否會被關閉
re: 對list的查找的另一種作法 LOGOS 2006-06-10 17:02
很想跟你說,iterator是不穩定的對象,insert,delete或者其他一些操作,都會使得當前擁有的iterator失效。
re: fstream 和 中文路徑 LOGOS 2006-06-09 23:25
做了更多的測試之后,發現ios::imbue方法失效了,要改變語言類別,只能通過locale::global實現。
但是問題卻來了,設置global為中文后,cout卻喪失了輸出中文的能力。。。
re: fstream 和 中文路徑 LOGOS 2006-06-09 22:21
聽君一席話,勝讀十年書。
以前用VS2003的時候,用fstream類一直可以很好支持中文文件名的,后來換了VS2005之后,建立中文文件名的文件,文件名字卻一直是亂碼(wfstream不在此例),內心十分疑惑。
看了你的貼,做了一下測試,所有問題都OK了。
const char * szData1 = oss.str().c_str();
szData1[0] == '\0';
不過既然是臨時變量,你這么用
string & ss = oss.str();
const char * szData2 = ss.c_str();
不符合規范吧
re: 為什么main有多種格式? LOGOS 2006-06-07 17:50
你所說的調用規范,在將源代碼編譯成匯編形式后輸出可以看出來。
main函數,靜態函數,都在函數名之前加_,參數的調用是堆棧實現的,這一點所有的函數都是一致的。
re: 公司面試題目集合: LOGOS 2006-06-03 10:33
第三題夠惡心的,程序講究的是簡單明了,可不是耍NB的。
a swap b.
a = a-b
b = a+b
a = b-a
over.
re: C++隨筆 delete void * LOGOS 2006-06-02 08:29
delete void*不太實用吧,有什么人會做這種事情呢
嗯,在有繼承的體系中,重載賦值操作符的確會發生很多災難性的事情。
增加知識了。
有些理解了ios_binary的意義,添入文章中了。
re: 資源和資源管理類的設計問題 LOGOS 2006-05-28 11:05
我不太清楚你要干什么。。。
class Pen : public Resource;
class PenManager : public ResourceManager;
class Brush : public Resource;
class BrushManager : public ResourceManager;
ResourcePtr ResourceManager::create(...) 只是創建一個占位符,但是還沒有load。
設計基類Resource的目的,是為了可以重用ResourceManager對資源的管理代碼,不是給你用的。
至于對具體資源的引用和載入,是留給具體的ResourceManager來實現的。因此你要創建Pen,應該這么做:PenPtr p = PenManager::singleton().load(...)。而不是:PenPtr p = (PenPtr)ResourceManager::singleton().create(...)。
re: 初來乍到 LOGOS 2005-12-27 17:11
關于這個問題,我也差異了一下,不過編譯成匯編后,就明白了:這些事情,是編譯器決定的事情.
; Line 11
mov DWORD PTR _i$[ebp], 3
; Line 12
mov eax, DWORD PTR _i$[ebp]
add eax, DWORD PTR _i$[ebp]
add eax, DWORD PTR _i$[ebp]
mov DWORD PTR _sum$[ebp], eax
mov ecx, DWORD PTR _i$[ebp]
add ecx, 1
mov DWORD PTR _i$[ebp], ecx
mov edx, DWORD PTR _i$[ebp]
add edx, 1
mov DWORD PTR _i$[ebp], edx
mov eax, DWORD PTR _i$[ebp]
add eax, 1
mov DWORD PTR _i$[ebp], eax