原创 操作符重載函數多態性

內容:    在一次coding過程中,遇到這樣一個問題:能不能顯式聲明用virtual修飾操作符重載的函數?呵呵,提出的問題是不是weird一點,但是此時並不否認有這樣的想法也符合邏輯,好,那麼我們來測試一下:    #include

原创 條款30:透徹瞭解inlining的裏裏外外

條款30:透徹瞭解inlining的裏裏外外    (Understand the ins and outs of inlining.) 內容:    對於該款的描述,原文中用了6頁的篇幅進行闡述,這裏我就將重要的知識點羅列出來,方便大家

原创 條款29:爲"異常安全"而努力是值得的

條款29:爲"異常安全"而努力是值得的    (Strive for exception-safe code.)    內容:    看了這款的內容,我對C++的難以控制的"脾氣"又有了進一步的瞭解,C++的安全性問題一直是廣大非C++程

原创 條款26:儘可能延後變量定義式的出現時間

條款26:儘可能延後變量定義式的出現時間    (Postpone variable definitions as long as possible.) 內容:    由於定義一個類變量時,你就必須承擔起構造和析構的負擔.所以我們要儘量減

原创 條款34:區分接口繼承和實現繼承

                          條款34:區分接口繼承和實現繼承           Differentiate between inheritance of interface and inheritance of

原创 Windows 服務(3) (from MSDN)

◆服務配置程序     程序員和系統管理員使用服務配置程序修改或者查詢已安裝服務數據庫.此數據庫也可以通過使用註冊函數來訪問.但不管你使用何種方式,你應該只使用SCM配置函數,因爲它能確保服務能夠被正確的安裝和配置.     SCM配

原创 條款38:通過複合塑膜出has-a或"根據某物實現"

條款38:通過複合塑膜出has-a或"根據某物實現" 內容:      所謂的複合就是類型之間的一種關係,它的基本的表現形式在我們平時的編寫代碼過程當中常常出現,比如你準備設計一個類的時候,你寫出來的類的對象不是保護了其它的對象?呵呵,對

原创 條款36:絕對不要重新定義繼承而來的non-virtual函數

條款36:絕對不要重新定義繼承而來的non-virtual函數 內容:    我們來看個例子,class B爲基類,class D爲public繼承自B的子類:    class B{    public:        void fun

原创 條款31:將文件間的編譯依存關係降至最低

條款31:將文件間的編譯依存關係降至最低    (Minimize compilation dependencies between files.) 內容:    在你們的開發團隊中,一些有經驗的工程師時不時地會教導新手一些基本的編程原則

原创 條款28:避免返回handles指向對象內部成分

條款28:避免返回handles指向對象內部成分    (Avoid returning "handles" to object internals.) 內容:    這裏所謂的handles一般包括內部對象的references、poi

原创 關於繼承體系下的操作符重載問題討論(二)

    我們在上一篇的時候引入了一個問題:當不爲我們的子類顯式提供操作符重載函數實現,那麼編譯器爲這個類提供的操作符重載的默認實現版本是否會調用基類的操作符實現函數呢?帶着這個問題,我們依舊利用上一篇的代碼進行測試,我們先註釋掉該子類的操

原创 條款25:考慮寫出一個不拋異常的swap函數

條款25:考慮寫出一個不拋異常的swap函數(Consider support for a non-throwing swap.) 內容:    swap函數就是相互交換兩個對象的內容,標準程序庫中已經提供了該函數的實現版本,其實現過程也

原创 條款27:儘量少做轉型動作

條款27:儘量少做轉型動作    (Minimize casting.)    內容:    我們先來看一下轉型語法,C風格的轉型語法大概就是下面這種形式:    (T)expression     //將expression轉換爲T類型

原创 Windows 服務(1) (from MSDN)

 Windows服務(1)    (翻譯自MSDN) ◆總述     如果一個服務應用程序遵循SCM(Service Control Manager)接口規範,那麼系統登錄用戶就可以通過操作服務程序控制面板或者執行內部使用了服務函數(se

原创 條款24:若所有參數皆需類型轉換,請爲此採用non-member函數

條款24:若所有參數皆需類型轉換,請爲此採用non-member函數(Declare non-member functions when type conversions should apply to all parameters.)