內存空間分配(C++)
摘要: 在C++中,內存分成5個區,他們分別是堆、棧、自由存儲區、全局/靜態存儲區和常量存儲區。
棧,就是那些由編譯器在需要的時候分配,在不需要的時候自動清楚的變量的存儲區。里面的變量通常是局部變量、函數參數等。
堆,就是那些由new分配的內存塊,他們的釋放編譯器不去管,由我們的應用程序去控制,一般一個new就要對應一個delete。如果程序員沒有釋放掉,那么在程序結束后,操作系統會自動回收。
……
閱讀全文
虛析構函數(C++)
摘要: 我們知道,用C++開發的時候,用來做基類的類的析構函數一般都是虛函數。可是,為什么要這樣做呢?下面用一個小例子來說明:
有下面的兩個類:
class ClxBase
{
public:
……
閱讀全文
auto_ptr(C++)
摘要: 很多人聽說過標準auto_ptr智能指針機制,但并不是每個人都天天使用它。這真是個遺憾,因為auto_ptr優雅地解決了C++設計和編碼中常見的問題,正確地使用它可以生成健壯的代碼。本文闡述了如何正確運用auto_ptr來讓你的代碼更加安全——以及如何避免對auto_ptr危險但常見的誤用,這些誤用會引發間斷性發作、難以診斷的bug。
……
閱讀全文
Templete(C++)
摘要: 一、什么是模板
模板是根據參數類型生成函數和類的機制(有時稱為“參數決定類型”)。通過使用模板,可以只設計一個類來處理多種類型的數據,而不必為每一種類型分別創建類。
例如,創建一個類型安全函數來返回兩個參數中較小的一個,如果不使用Templates,必須要編寫一系列如下的函數:
……
閱讀全文
iterator中的前++和后++(C++)
摘要: for(iterator it = begin(); it != end(); ++it)
或者
for(iterator it = begin(); it != end(); it++)
區別是什么呢??
……
閱讀全文