為避免這種浪費,AppWizard和VisualC++編譯程序一起進行工作 閱讀全文
posted @ 2007-09-09 13:36 Shuffy 閱讀(4410) | 評論 (0) | 編輯 收藏
posts - 102, comments - 43, trackbacks - 0, articles - 19 |
||
摘要: Windows和MFC的include文件都非常大,即使有一個快速的處理程序,編譯程序也要花費相當長的時間來完成工作。由于每個.CPP文件都包含相同的include文件,為每個.CPP文件都重復處理這些文件就顯得很傻了。
為避免這種浪費,AppWizard和VisualC++編譯程序一起進行工作 閱讀全文 posted @ 2007-09-09 13:36 Shuffy 閱讀(4410) | 評論 (0) | 編輯 收藏 摘要: (1) 計算機系統分類。
·指令流:機器執行的指令系列。 ·數據流:由指令流調用的數據序列。 ·Flynn分類法:單指令流單數據流,指令流多數據流,單指令流多數據流,多指令流單數據流。 ·馮式分類法:用最大并行度來對計算機體系結構進行分類。 閱讀全文 posted @ 2007-09-04 17:26 Shuffy 閱讀(1301) | 評論 (1) | 編輯 收藏 摘要: 使用棧就象我們去飯館里吃飯,只管點菜(發出申請)、付錢、和吃(使用),吃飽了就走,不必理會切菜、洗菜等準備工作和洗碗、刷鍋等掃尾工作,他的好處是快捷,但是自由度小。使用堆就象是自己動手做喜歡吃的菜肴,比較麻煩,但是比較符合自己的口味,而且自由度大。 閱讀全文
posted @ 2007-09-02 17:10 Shuffy 閱讀(331) | 評論 (0) | 編輯 收藏 posted @ 2007-09-02 16:04 Shuffy 閱讀(241) | 評論 (0) | 編輯 收藏 摘要: 銘記在心
l 在對你的類型使用 std::swap 時可能會造成效率低下時,可以提供一個 swap 成員函數。確保你的 swap 不要拋出異常。 l 如果你提供了一個 swap 的成員函數,那么同時要提供一個非成員函數 swap 來調用這一成員。對于類而言(而不是模板),還要提供一個 std::swap 的特化版本來調用 swap 成員函數。 l 在調用 swap 時,要為 std::swap 使用一條 using 聲明,然后在調用 swap 時,不要做出名字空間的限制。 l 對用戶自定義類型而言,提供 std 的完全特化版本不成問題,但是決不要嘗試在 std 中添加全新的內容。 閱讀全文 posted @ 2007-09-02 15:57 Shuffy 閱讀(411) | 評論 (0) | 編輯 收藏 摘要: 一、從控制臺讀取東西代碼片斷:
using System; class TestReadConsole { public static void Main() { Console.Write("Enter your name:"); string strName = Console.ReadLine(); Console.WriteLine(" Hi "+ strName); } } 閱讀全文 posted @ 2007-08-31 12:34 Shuffy 閱讀(238) | 評論 (0) | 編輯 收藏 摘要: Mutable 數據成員的使用看上去像是騙術,因為它能夠使 const 函數修改對象的數據成員。然而,明智地使用 mutable 關鍵字可以提高代碼質量,因為它能夠讓你向用戶隱藏實現細節,而無須使用不確定的東西 閱讀全文
posted @ 2007-07-13 20:13 Shuffy 閱讀(511) | 評論 (0) | 編輯 收藏 摘要: 在過去留下來的程序代碼和純粹的C程序中,傳統的
posted @ 2007-07-13 19:47 Shuffy 閱讀(191304) | 評論 (30) | 編輯 收藏 摘要: l 如果你需要對一個函數的所有參數進行類型轉換(包括 this 指針所指向的對象),那么它必須是一個非成員函數。
閱讀全文 posted @ 2007-07-13 19:04 Shuffy 閱讀(283) | 評論 (0) | 編輯 收藏 摘要: 面向對象的基本原理要求數據和對其進行操作的函數應該被包裝在一起,同時建議成員函數為更優秀的選擇。但不幸的是,這一建議并不是正確的。它是建立在對“面向對象的東西意味著什么”這一點的誤解之上的。通過理性分析可以得知,成員函數 clearEverything 的封裝性實際上比非成員函數 clearBrowser 還要差。還有,非成員函數可以為 WebBrowser 相關的功能提供更便利的打包方法,從而減少編譯時依賴,提高 WebBrowser 的可擴展性。很多情況下,非成員函數的方法都比成員函數的方法要好。理解這一結論的原因是十分重要的。 閱讀全文
posted @ 2007-06-26 13:24 Shuffy 閱讀(264) | 評論 (0) | 編輯 收藏 摘要: 好吧,直截了當的說,在這一條中:我們首先要分析為什么數據成員不應該是公有的,與此同時,繼續分析為什么數據成員也不能是 protected 的。然后就引出本條款的結論:數據成員必須是私有的。 閱讀全文
posted @ 2007-06-26 13:20 Shuffy 閱讀(292) | 評論 (0) | 編輯 收藏 摘要: 一旦程序員把注意力都轉向了對象傳值方式隱含的效率問題(參見第 20 條)時,許多人都變成了極端的“改革運動者”,他們對傳值方法采取斬草除根的態度,在他們不屈不撓追求傳遞引用方式的純粹性的同時,他們也犯下了致命的錯誤:有時候傳遞的引用所指向的對象并不存在。這決不是一件好事情。 閱讀全文
posted @ 2007-06-26 13:17 Shuffy 閱讀(176) | 評論 (0) | 編輯 收藏 摘要: 默認情況下, C++ 為函數傳入和傳出對象是采用傳值方式的(這是由 C 語言繼承而來的特征)。除非你明確使用其他方法,函數的形式參數總會通過復制實在參數的副本來創建,并且,函數的調用者得到的也是函數返回值得一個副本。這些副本是由對象的拷貝構造函數創建的。這使得“傳值”成為一項代價十分昂貴的操作。 閱讀全文
posted @ 2007-06-26 13:14 Shuffy 閱讀(216) | 評論 (0) | 編輯 收藏 摘要: 與其它的面向對象編程語言類似,在 C++ 中,定義一個新的 class 便會引入一個新的類型的定義。一個 C++ 設計人員的大多數時間都會用在不斷豐富充實他們的類系統上。這意味著他不僅僅是一個 class 的設計者,而且是一個類型的設計者。 閱讀全文
posted @ 2007-05-27 10:16 Shuffy 閱讀(191) | 評論 (0) | 編輯 收藏 摘要: C++ 中到處充滿了接口。函數接口、類接口、模板接口,等等。每個接口都是實現客戶端程序員與你的代碼相交互的一種手段。假設你的客戶通情達理,他們的項目也十分優秀,他們便會十分看重你的接口是否易于正確使用。這是千真萬確的,如果他們誤用了你的接口中的任一個,那么你也難推其咎。 閱讀全文
posted @ 2007-05-27 10:14 Shuffy 閱讀(297) | 評論 (0) | 編輯 收藏 |
||