原创 C++拾遺--智能指針

                        C++拾遺--智能指針 前言     內存泄露是常見的問題,新標準中的智能指針從根本上解決了這個問題。所謂的智能指針,其智能性體現在:當沒有對象使用某塊動態分配的內存時,那就自動釋放這片內存

原创 C++拾遺--構造函數(二)拷貝構造

                       C++拾遺--構造函數(二)拷貝構造 前言     在構造函數(一)中討論的是默認構造函數的一些應用。這裏我們來探討下其它的一些有名構造函數,及其它們的應用場景。 實例 #include <

原创 C++拾遺--bind函數綁定

                        C++拾遺--bind函數綁定 前言     函數綁定bind函數用於把某種形式的參數列表與已知的函數進行綁定,形成新的函數。這種更改已有函數調用模式的做法,就叫函數綁定。需要指出:bind

原创 C++拾遺--函數模板

                        C++拾遺--函數模板 前言     泛型的核心思想是數據與算法分離。函數模板是泛型編程的基礎。 函數模板 函數模板以 template<arg_list> 開頭,arg_list是泛型參數

原创 C++拾遺--模板元編程

                          C++拾遺--模板元編程 前言     模板元是用於遞歸加速的,把運行期的函數調用變到編譯期進行代碼展開,類似於內聯函數。下面看一個實例:斐波那契數列第n項求解。 模板元編程 #inc

原创 C++拾遺--構造函數(一)默認構造

                    C++拾遺--構造函數(一)默認構造 前言     對一個類而言,構造函數恐怕是最重要的一個成員函數了。關於構造函數的細節繁多,並且隨着新標準的提出,構造函數有了新的特性。本文來集中探討下構造函數的

原创 C++拾遺--多線程:C語言多線程的引入

                      C++拾遺--多線程:C語言多線程的引入 前言     多線程是編程中的一個重要內容。多核時代使多線程成爲一種可能,顯然,一件事情多個人幹,效率一定會提升。下面來看下C語言中是如何使用多線程的。

原创 C++拾遺--name_cast 顯式類型轉換

                    C++拾遺--name_cast 顯式類型轉換 前言     C++中提供了四種顯式的類型轉換方法:static_cast,const_cast,reinterpret_cast,dynamic_c

原创 C++拾遺--函數重載

                      C++拾遺--函數重載 前言     函數重載(overloaded)似乎並不難,至於函數重載規則,比較簡單,沒什麼好講的。但仍有一些問題值得注意。下面從幾個關鍵詞入手: 正文 1.作用域 關於

原创 C++拾遺--多線程:原子操作解決線程衝突

                 C++拾遺--多線程:原子操作解決線程衝突 前言     在多線程中操作全局變量一般都會引起線程衝突,爲了解決線程衝突,引入原子操作。 正文 1.線程衝突 #include <stdio.h> #inc

原创 C++拾遺--多線程:臨界區解決子線程的互斥

                  C++拾遺--多線程:臨界區解決子線程的互斥 前言     爲了解決子線程的互斥問題,windows系統提出了關鍵段或臨界區(CRITICAL_SECTION)的概念。它一共有四個共兩對操作:初始化、銷

原创 C++拾遺--C++多線程引入

                       C++拾遺--C++多線程引入 前言     C++庫文件也提供了對多線程的支持,主要包含頭文件thread即可使用C++中的多線程。它的一些與多線程有關的方法和C語言不同。我們有必要來探討下

原创 C++拾遺--定位new表達式

                        C++拾遺--定位new表達式 前言     new表達式,默認下把內存開闢到堆區。使用定位new表達式,可以在指定地址區域(棧區、堆區、靜態區)構造對象,這好比是把內存開闢到指定區域。 正

原创 C++拾遺--lambda表達式

                           C++拾遺--lambda表達式 前言     有時,我們需要在函數內部頻繁地使用某一功能。此時,我們可以把這種功能寫成一個獨立的函數。而實際上,這個新的函數很可能是不需要在其它的地方

原创 C++拾遺--malloc free與new delete的同與不同

                   C++拾遺--malloc free與new delete的同與不同 前言     在C中我們常使用malloc和free來動態分配與釋放內存,在C++中對應的是new和delete。這裏我們來探討下