原创 Win7下QT開發環境搭建

首先是軟件準備: 需要下載兩個軟件 qt-win-opensource-4.4.0-mingw(ftp://ftp.trolltech.com/qt/source/qt-win-opensource-4.4.0-mingw.exe) Mi

原创 構造/析構/複製運算

Item5 Know what functions C++ silently writes and calls. 編譯器可爲一個類默認生成默認構造函數、拷貝構造函數和賦值運算符以及析構函數。注意有指針成員的情況下,默認生成的拷貝構造函數和

原创 貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒

前幾天看到有個朋友寫的一篇blog 題目如下:貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。 要求:(1)要有聯動性,老鼠和人的行爲是被動的。         (2)考慮可擴展性,貓叫聲可能會引起其他的聯動效應。 我不是一個善於做題目的人

原创 設計與聲明

Item18 Make interfaces easy to use correctly and hard to use incorrectly. 程序員在自定義接口的時候,要注意與內置行爲的類型保持兼容性。 容易正確使用,舉例如下: c

原创 異常

Item 9 Use destructors to prevent resoruce leaks.利用析構函數避免泄露資源。 class ALA { public: virtual void ProcessAdoption()=0; }

原创 效率(1)

Item 16 謹記80-20原則。 一個程序80%的資源用於20%的代碼上。 約80%的執行時間大約花在20%的代碼上。 80%的內存大約被20%的代碼使用。 80%的磁盤訪問動作由20%的代碼執行。 80%的維護力氣花在20%的代碼上

原创 讓自己習慣C++

Item1 View C++ as a federation of languages。 C、Object-Oriected C++、Template C++、STL。 Item2 Prefer consts, enums, and in

原创 模板與泛型編程

Item 41 Understand implicit interfaces and compile-time polymorphism. 瞭解隱式接口和編譯期多態。 類和模板都支持接口和多態。 對於類,接口是顯式的。顯式接口由函數的聲明

原创 定製new和delete

Item 49 Understand the behavior of the new-handler.瞭解new-handler的行爲。 當operator new拋出異常之前以反映一個未滿足的內存需求之前,會先調用稱爲new-handl

原创 資源管理

Item13 Use objects to manage resoruces. 即用專門的對象來管理資源。常用的就是<memory>中的auto_ptr和tr1::shared_ptr。 主要爲了防止資源泄露,請使用RAII對象,他們在構

原创 Sigleton模式

意圖:保證一個類僅有一個實例,並且提供一個訪問它的全局訪問點。讓類自身負責保存它的唯一實例。 Sigleton.h文件中: #include <iostream> #include <memory> using namespace std

原创 操作符

Item 5 Be wary of user-defined conversion functions.對用戶定製的“類型轉換函數”保持警覺。 (1)含有單自變量的構造函數,包括兩種情況,構造函數只有一個參數,或者有多個參數,但是除第一個

原创 Strategy模式

class AbstractStrategy { public: virtual void Algorithm(int data)=0; virtual ~AbstractStrategy() {} }; class Concret

原创 基礎議題

Item 1 Distinguish between pointers and references.仔細區別指針和引用。 首先:沒有null references。一個reference必須總代表某個對象。因此在用引用作爲函數參數時,在

原创 效率(2)

Item 21 利用重載技術避免隱式類型轉換。 class UInt { public: UInt():value(0) {} UInt(int value):value(value) {} friend const UInt o