原创 C++ MFC框架結構的分析

原文鏈接:http://c.biancheng.net/cpp/html/3072.html 上一節我們基於MFC的框架結構,創建了一個默認的基於對話框的應用程序。沒有添加一行代碼,但是運行程序

原创 C++ MFC簡介

原文鏈接:http://c.biancheng.net/cpp/html/3070.html 介紹MFC之前,需要先介紹幾個MFC的概念。 1) API Windows操作系統提供了各種各樣的函

原创 Flash Player離線安裝包下載指南(詳細版)

原文鏈接:http://www.xmpojie.com/1954.html Flash Player離線安裝包下載指南 2019-08-31更新 雖然不能直接通過提取下載地址這麼粗暴的方法裝Fl

原创 Effective C++ 讀書筆記 Item39 明智而審慎地使用 private 繼承

Item 32提出public繼承表示"is-a"的關係,這是因爲編譯器會在需要的時候將子類對象隱式轉換爲父類對象。 然而private繼承則不然: class Person { ... }; class Student: privat

原创 Effective C++ 讀書筆記 Item44 將與參數無關的代碼抽離 templates

模板是個好東西,你可以在實現類型安全的同時少寫很多代碼。但模板提供的是編譯期的多態, 即使你的代碼看起來非常簡潔短小,生成的二進制文件也可能包含大量的冗餘代碼。 因爲模板每次實例化都會生成一個完整的副本,所以其中與模板參數無關的部分會造成

原创 Effective C++ 讀書筆記 Item37 絕不重新定義繼承而來的缺省參數值

不要重寫父類函數的默認參數。Item 36已經說明子類中不應該重寫繼承而來的父類的非虛函數。 那麼本文討論的內容其實是:不要重定義虛函數的默認參數。爲什麼呢? 因爲雖然虛函數的是動態綁定的,但默認參數是靜態綁定的。只有動態綁定的東西才應該

原创 Effective C++ 讀書筆記 Item36 絕不重新定義繼承而來的 non-virtual 函數

從規範上說, 條款 34 提到,如果某個操作在整個繼承體系應該是不變的,那麼使用 non-virtual 函數,此時派生類從基類繼承接口以及一份強制實現。如果派生類希望表現出不同行爲,那麼應該使用 virtual函數。 我們還是在討論pu

原创 Effective C++ 讀書筆記 Item43 訪問模板基類中的名稱

從面向對象C++轉移到模板C++時,你會發現類繼承在某些場合不在好使了。 比如父類模板中的名稱對子類模板不是直接可見的,需要通過this->前綴、using或顯式地特化模板父類來訪問父類中的名稱。 因爲父類模板在實例化之前其中的名稱是否

原创 Effective C++ 讀書筆記 Item40 明智而審慎地使用多重繼承

使用多繼承時, 一個問題是不同基類可能具有相同名稱,產生歧義(即使一個名字可訪問,另一個不可訪問) 多繼承(Multiple Inheritance,MI)是C++特有的概念,在是否應使用多繼承的問題上始終爭論不斷。一派認爲單繼承(Sin

原创 Effective C++ 讀書筆記 Item41 瞭解隱式接口和編譯器多態

面向對象設計中的類(class)考慮的是顯式接口(explicit interface)和運行時多態, 而模板編程中的模板(template)考慮的是隱式接口(implicit interface)和編譯期多態。 對類而言,顯式接口是由函

原创 Effective C++ 讀書筆記 Item46 需要類型轉換時,應當在類模板中定義非成員函數

Item 24中提到,如果所有參數都需要隱式類型轉換,該函數應當聲明爲非成員函數。Item 24是以Rational和operator*爲例子展開的,本文把這個觀點推廣到類模板和函數模板。 但是在類模板中,需要所有參數隱式轉換的函數應當聲

原创 Effective C++ 讀書筆記 Item38 通過組合表示"擁有"或"以...實現"的關係

一個類型包含另一個類型的對象時,我們這兩個類型之間是組合關係。組合是比繼承更加靈活的軟件複用方法。 Item 32提到public繼承的語義是"is-a"的關係。對象組合也同樣擁有它的語義: 就對象關係來講,組合意味着一個對象擁有另一個對

原创 Effective C++ 讀書筆記 Item47 使用Traits類提供類型信息

C++中的 Traits 類可以在編譯期提供類型信息,它是用Traits模板及其特化來實現的。 通過方法的重載,可以在編譯期對類型進行”if…else”判斷。我們通過STL中的一個例子來介紹Traits的實現和使用。 本文以iterat

原创 Effective C++ 讀書筆記 Item48 瞭解模板元編程

模板元編程(Template Metaprogramming,TMP)就是利用模板來編寫那些在編譯時運行的C++程序。 模板元程序(Template Metaprogram)是由C++寫成的,運行在編譯器中的程序。當程序運行結束後,它的輸

原创 Effective C++ 讀書筆記 Item51 new和delete時請遵循慣例

Item 50介紹瞭如何自定義new和delete但沒有解釋你必須遵循的慣例, 這些慣例中有些並不直觀,所以你需要記住它們! operator new需要無限循環地獲取資源,如果沒能獲取則調用”new handler”,不存在”new h