C++主要特色:編譯型語言,強類型(並不是類型安全),操做符重載,泛型(STL庫容器)。數組
匿名聯合:主要體現成員變量在內存中分佈的方式,外界沒法調用無名的對象。安全
bool:任何基本類型都能隱式轉爲布爾類型。函數
函數重載:spa
原理:g++編譯器換名機制,形參表不一樣則換名後函數名不一樣。指針
extern C:按照C語言的方式編譯,沒法換名,沒法函數重載。對象
編譯器匹配函數的原則:blog
缺省參數:聲明指定,定義不要指定;某一個參數有缺省值,後面的參數都須要;避免缺省參數產生重載歧義。內存
inline函數:編譯後用二進制代碼替換函數調用。減小調用時間的開銷(各類保存現場,出棧入棧)。C++內聯函數優於C語言的有參宏(宏函數)。編譯器
動態內存分配:編譯
malloc/free與new/delete:前者繼續可用,後者分配同時初始化(例如類的初始化表、引用等)。
數組方式分配: 類型 *p = new 類型 [] {}
釋放: delete [] p; p = NULL;(防止雙重釋放報錯)
引用:
內存的別名(alias),對引用操做即對目標內存操做;不佔內存,並不是實體(從C++看,從彙編來看是指針);
必須初始化,不能換目標;常屬性要求一致,能夠更加嚴格,int a; const int &ra= a;
常引用(萬能引用)延長臨時變量的生命期。
引用形參以及常引用形參:
避免複製對象產生開銷;
常引用形參:防止修改實參;接受常類型實參,foo(a,10);
引用型返回值:不能返回局部變量的引用。
類型轉換: