原创 new對象加括號與不加的區別

加括號與不加的區別   (1)加括號     1. 若括號爲空,即無實參項,那麼理解爲調用默認構造函數;     2. 若括號非空,即有實參項,可以理解爲調用重載構造函數,或默認複合構造函數。   (2)不加括號     調用

原创 Linux寫時拷貝技術(copy-on-write)

Linux寫時拷貝技術(copy-on-write) 源於網上資料 COW技術初窺:       在Linux程序中,fork()會產生一個和父進程完全相同的子進程,但子進程在此後多會exec系統調用,出於效率考慮,linux中引入

原创 java 動態綁定

Java的動態綁定機制 靜態綁定發生在編譯時期,動態綁定發生在運行時 使用private或static或final修飾的變量或者方法,使用靜態綁定。而虛方法(可以被子類重寫的方法)則會根據運行時的對象進行動態綁定。 靜態綁定使用

原创 C/C++ 可變參數

爲了解決這些問題,我們首先要解釋cdecl調用約定(參見論調用約定),所有使用不定參數的函數必須是使用cdecl(全局函數)或者this call(類成員函數)調用約定。該約定對於參數傳遞規定如下: 參數從右向左入棧(也就是如果你調用f

原创 Extern templates

A template specialization can be explicitly declared as a way to suppress multiple instantiations. For example: #in

原创 子類父類 成員同名

子類和父類中同名成員的問題 如果創建父類對象來訪問父類中的這個成員,那無話可說。 如果創建子類對象,此時創建的子類對象會繼承父類中可繼承的公有部分,也就是說這個子類對象既包含了子類新增的內容,又包含了父類繼承的內容。這時問題便來

原创 TCP短連接長連接

1. TCP短連接 我們模擬一下TCP短連接的情況,client向server發起連接請求,server接到請求,然後雙方建立連接。client向server發送消息,server迴應client,然後一次讀寫就完成了,這時候雙方任何

原创 boost::noncopyable

今日粗看boost的代碼,發現很多類都繼承noncopyable,以下是noncopyable的代碼:class noncopyable  {   protected:      noncopyable() {}      ~noncop

原创 extern用法詳解(轉)

extern用法詳解(轉)       1 基本解釋  extern可以置於變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。   另外,extern也可用來進行鏈接指定

原创 out-line virtual function

If a class is defined in a header file and has a vtable (either it has virtual methods or it derives from classes with