//=====================================================================//TITLE:// C++ VS C#(8):類定義//AUTHOR:// norains//DATE:// Thursday 17-January-2011//Environment:// Visual Studio 2010// Visual Studio 2005//=========================
//=====================================================================//TITLE:// C++ VS C#(5):數組//AUTHOR:// norains//DATE:// Monday 13-December-2010//Environment:// Visual Studio 2010// Visual Studio 2005//===========================
//=====================================================================//TITLE:// C++ VS C#(10):建構函式與解構函式//AUTHOR:// norains//DATE:// Friday 18-January-2011//Environment:// Visual Studio 2010// Visual Studio 2005//====================
//=====================================================================//TITLE:// C++ VS C#(7):指向函數的指標和委託//AUTHOR:// norains//DATE:// Thursday 17-January-2011//Environment:// Visual Studio 2010// Visual Studio 2005//Modify//
//=====================================================================//TITLE:// C++ VS C#(11):結構體和對象的細微區別//AUTHOR:// norains//DATE:// Friday 18-January-2011//Environment:// Visual Studio 2010// Visual Studio 2005//==================
//=====================================================================//TITLE:// C++ VS C#(13):隱藏基類方法,部分類定義//AUTHOR:// norains//DATE:// Monday 04-April-2011//Environment:// Visual Studio 2010// Visual Studio 2005//===================
C++中的 new 有3中使用方式,它們是: plain new 、 nothrow new 和 placement new 。這3種形式極大地擴充了記憶體配置的靈活性。 1. plain new 從字面上看,這就是普通的 new ,也是我們平時使用的 new ,這裡就不多說。 2. nothrow new nothrow new 就是部拋出異常的 new ,在失敗的時候返回
mutalbe的中文意思是“可變的,易變的”,跟constant(既C++中的const)是反義詞。 在C++中,mutable也是為了突破const的限制而設定的。被mutable修飾的變數,將永遠處於可變的狀態,即使在一個const函數中。 我們知道,如果類的成員函數不會改變對象的狀態,那麼這個成員函數一般會聲明成const的。但是,有些時候,我們需要在const的函數裡面修改一些跟類狀態無關的資料成員,那麼這個資料成員就應該被mutalbe來修飾。 下面是一個小例子: class
Making your C++ code robustIntroduction 在實際的項目中,當項目的代碼量不斷增加的時候,你會發現越來越難管理和跟蹤其各個組件,如其不善,很容易就引入BUG。因此、我們應該掌握一些能讓我們程式更加健壯的方法。 這篇文章提出了一些建議,能有引導我們寫出更加強壯的代碼,以避免產生災難性的錯誤。即使、因為其複雜性和項目團隊結構,你的程式目前不遵循任何編碼規則,按照下面列出的簡單的規則可以協助您避免大多數的崩潰情況。Background
第一種方法:DWORD GetCurrentDirectory( DWORD nBufferLength, // size, in characters, of directory buffer LPTSTR lpBuffer // pointer to buffer for current directory);BOOL SetCurrentDirectory( LPCTSTR lpPathName // pointer to name of new current