18.1 new,delete的進一步認識
18.1.1 總述與回顧
記憶體有關的高階用法,如記憶體池等
18.1.2 從new說起
new類物件時,加與不加括號的差別
a *pa=
newa()
// 帶號的寫法,類a的成員變數被初始化為0
a *pa2=
new a // 這種寫法,m_i成員變數中是隨機值
但是增加了乙個建構函式後,情況又有所不同,初始化的工作交給建構函式因此不一定會初始化為0
new做了什麼事情
new是關鍵字
new關鍵字主要做了兩件事情
a * pa=
newa()
呼叫operator
new(呼叫了malloc)
呼叫類a的建構函式
可以表示為:
a * pa=
newa()
operator
new();
malloc()
; a::a(
)
delete關鍵字主要做了兩件事情
delete pa;
a::~a
();// 如果有析構先呼叫析構
operator
delete
(); // 函式
free()
;// c分格函式釋放記憶體
new與malloc的區別
new是關鍵字/操作符,malloc是函式
new乙個物件的時候,不但分配記憶體而且還會呼叫類的建構函式
在某些情況下a * pa=new a()可以把a的成員變數設定為0,這是new的能力而malloc沒這個能力
18.2 new記憶體分配細節探秘與過載類內operator new、delete
18.1 new記憶體分配細節探秘
八 高階話題
本章描述bufferevent的一些對通常使用不必要的高階特徵。如果只想學習如何使用bufferevent,可以跳過這一章,直接閱讀下一章。有時候網路程式需要與自身通訊。比如說,通過某些協議對使用者連線進行隧道操作的程式,有時候也需要通過同樣的協議對自身的連線進行隧道操作。當然,可以通過開啟乙個到自...
高階指標話題
來淺顯地 一下稍微複雜的指標.首先要有乙個不可動搖地認識,再厲害的指標也是指標,它存的內容永遠是位址.定義了指標的型別,該指標就只能與這種型別搭配使用.從二級指標開始說 int i int p i int pp p pp是乙個二級指標,指向指標的指標,存的內容是p的位址,型別是 指向整型的指標的指標...
Spring高階話題 Aware
一 aware是什麼?spring aware就是一些定義了spring容器本身功能資源的介面 spring提供的aware介面 介面備註 beannameaware 獲得到容器中bean的名稱 beanfactoryaware 獲得當前 bean factory,這樣可以呼叫容器的服務 messa...