動態(tài)內存
1旨椒、棧區(qū)(stack)—?? 由編譯器自動分配釋放?? ,存放函數(shù)的參數(shù)值堵漱,局部變量的值等综慎。其
操作方式類似于數(shù)據(jù)結構中的棧。
2勤庐、堆區(qū)(heap)?? —?? 一般由程序員分配釋放示惊,?? 若程序員不釋放,程序結束時可能由OS回
收?? 愉镰。注意它與數(shù)據(jù)結構中的堆是兩回事米罚,分配方式倒是類似于鏈表.
3、全局區(qū)(靜態(tài)區(qū))(static)—丈探,全局變量和靜態(tài)變量的存儲是放在一塊的录择,初始化的
全局變量和靜態(tài)變量在一塊區(qū)域,?? 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另
一塊區(qū)域类嗤。 ? 程序結束后由系統(tǒng)釋放糊肠。
智能指針(未完待續(xù)):shared_ptr 允許多個指針指向同一個對象
unique_ptr 獨占所指的對象
weak_ptr 指向shared_ptr所管理的對象
直接管理內存:int* pi = new int; 此new表達式在自由空間構造一個int型對象,并返回指向該對象的指針遗锣。
類類型對象將用默認構造函數(shù)進行初始化
動態(tài)分配const對象const int *pci = new const int (1024);
new 后要 delete
new和數(shù)組int *pia = new int[get_size()]; ?//pia指向第一個int
動態(tài)數(shù)組不是數(shù)組類型
轉換函數(shù)
轉換函數(shù)是能夠隱式或者顯式的把一個class類型轉成其它的類型货裹。可以像成員函數(shù)一樣聲明精偿,但是沒有返回類型的(一般需要定義為const函數(shù))弧圆。
如果構造函數(shù)前有explicit 則不能隱性的轉換成其他類型
function-like class
pointer-like class
c++11 的一些語言特
auto自動類型推導
range-base for一種更加簡單方便的遍歷容器中元素的寫法。
for (range_declaration?:?range_expression)?loop_statement