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