Effective.C++學習(學習中)


基礎:

1、儘量使用const、inline而不使用#define.

儘量的把任務交給編譯器去做。


2、儘量用<iostream>而不用<stdio.h>


3、儘量用new/delete而不用malloc/free


4、儘量使用C++風格的註釋

 

內存管理:

內存管理:

1、對應的new和delete要採用相同的形式

用new的時候會發生兩件事:

首先,內存被分配

然後,爲被分配的內存調用一個或多個構造函數

2、析構函數裏對指針成員調用delete

3、預先準備好內存不夠的情況

assert這個宏檢查傳給它的表達式是否非零,如果不是非零值,就會發出一條出錯信息並調用abort。assert只是在沒定義標準宏ndebug的時候,即在調試狀態下才這麼做。

4、寫operator new和operator delete時要遵循常規

很重要的一點是函數提供的行爲要和系統缺省的operator new一致。實際做起來也就是:要有正確的返回值;可用內存不夠時要調用出錯處理函數(見條款7);處理好0字節內存請求的情況

5、避免隱藏標準形式的new

因爲內部範圍聲明的名稱會隱藏掉外部範圍的相同的名稱,所以對於分別在類的內部和全局聲明的兩個相同名字的函數f來說,類的成員函數會隱藏掉全局函數

一種方法是在類裏寫一個支持標準new調用方式的operator new

另一種方法是爲每一個增加到operator new的參數提供缺省值

6、如果寫了operator new就要同時寫operator delete

 

待續......

 

發佈了37 篇原創文章 · 獲贊 1 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章