原创 Effective C++ 讀書筆記12(41~42)
7 模板和泛型編程 條款41:瞭解隱式接口和編譯器多態 面向對象編程世界總是以顯式接口和運行期多態解決問題: class Widget{ public: Widget(); virtual ~Widget(); virutal
原创 Effective C++讀書筆記5
條款15:在資源管理類中提供對原始資源的訪問 資源管理類很好,但是有許多API 直接指涉資源管理類所管理的資源,那麼只能繞過資源管理對象直接訪問原始資源。條款13:使用智能指針保存工廠函數如CreateInvestment的調用結果: s
原创 Effective C++ 讀書筆記13(43~47)
條款43:學習處理模板化基類內的名稱 條款44:將與參數無關的代碼抽離templates 條款45:運用成員函數模板接受所有兼容類型 條款46:需要類型轉換時請爲模板定義非成員函數 條款47:請使用traits class表現類型信息 S
原创 Effective C++ 讀書筆記9(32~34)
6 繼承與面向對象設計 條款32:確定你的public集成塑模出is-a關係 請記住: public繼承意味is-a,適用於base classes深證的每一件事情也一定適用於derived classes身上,因爲每一個derived
原创 Effective C++讀書筆記8
條款28:避免返回handles指向對象內部成分 class Point{ public: Point(int x, int y); //... void setX(int newVal); void setY(int new
原创 Effective C++讀書筆記11(37~40)
條款37:絕不重新定義繼承而來的缺省參數值 本條款成立的理由非常明確:virutal函數系動態綁定,而缺省參數值卻是靜態綁定。 對象的靜態類型,就是他在程序被聲明時所採用的類型。考慮以下的class繼承體系: class Shape{
原创 Effective C++ 讀書筆記1
條款1 視C++爲一個語言聯邦 今天的C++已經是個多重範型編程語言,一個支持過程形式、面向對象形式、函數形式、泛型形式、元編程形式的語言。爲了理解C++,必須認識其主要的次語言,總共4個: 1.C 2.Object-Orien
原创 Effective C++讀書筆記15
8 定製new和delete條款49:瞭解new-handler的行爲當operator new無法滿足某一內存分配需求時,它會拋出異常。以前她會返回一個null指針,某些舊式編譯器目前也還那麼做。當new拋出異常以反映一個未獲滿足的內
原创 mmap測試
#include "mmap_fstream.h" #include "log.h" #include <iostream> #include <ostream> #include <string.h> #include <fstream
原创 Effective C++讀書筆記2
條款4 確定對象被使用前已被初始化 讀取未初始化的值會導致不明確的行爲,在某些平臺上,僅僅只是讀取未初始化的值,就可能讓你的程序終止運行。對象的初始化動作何時一定發生,何時不一定發生的規則很複雜,,最佳解決辦法就是:永遠在使用對
原创 Effective C++讀書筆記10(35~36)
條款35:考慮virtual函數以外的其他選擇 設計一款遊戲,爲不同的人物設計不同的計算健康指數的函數,那麼使用virutal函數很自然: class GameCharacter{ public: virtual int healt
原创 boost::serialization
轉自:http://www.cnblogs.com/edwardlost/archive/2011/03/16/1984623.html boost::serialization 基於 boost::archive 來完成任意複雜數據結
原创 Effective C++讀書筆記16
條款51:編寫new和delete時需固守常規(對這個條款體會不深) 請記住: 1.operator new應該內含一個無窮循環,並在其中嘗試分配內存,如果它無法滿足內存需求,就該調用new-handler。它也應該有能力處理0 byte
原创 Effective C++讀書筆記3
條款8: 別讓異常逃離析構函數 C++並不禁止析構函數吐出異常,但不鼓勵這樣做。但如果你的析構函數必須執行一個動作,而該動作可能會在失敗時拋出異常,該怎麼辦? 兩個辦法解決: 一是 如果拋出異常程序就結束,通常通過調用abort函數完成:
原创 linux下cdt使用技巧總結
1.在cdt中,build時默認的命令是make,但是也可以修改,在工程配置中,點擊C/C++ Build,有個builder settings,去掉 use default build command,就可以修改build的命令了,至於