1.c++的資料類型
基本資料類型:char,int,float,double,void,bool
非基本資料類型:數組,指針,結構體,聯合,枚舉,類
2.c++的命名空間
a.命名空間:定義了某些辨別符的作用域,使得我們在使用同名全局變量時不發生沖突
eg:
tips: "::"是作用域解析符,此處使用"::"唯一的辨別了cout和endl隸屬于std這個命名空間
b.自定義的命名空間
在c++程式中,我們不僅可以使用标準的命名空間,也可以使用我們自定義的命名空間
而自定義的命名空間的靈活性更大
eg:
從上面程式可以看出命名空間可以拆分開來定義,我們在使用某個命名空間中所定義的 成員之前必須使用using namespace …… 或者 ……::
3.函數的重載
什麼叫做函數的重載?
函數的重載允許我們定義多個相同函數名但參數清單不同的函數
輸出結果:5
6.5
從上面程式我們可以分析出在我們調用函數時,不需要考慮調用的是什麼函數,而由編譯器在 根據參數清單
對函數進行重命名之後,根據我們所傳的實參類型來判斷應該使用哪個函數,是以重載函數的 參數清單必須不同
否則,編譯器将無法決定應該調用哪個函數!
4.預設參數
在c++程式中,我們允許在函數具有預設參數時預設實參的形式,預設參數又分為全預設和部分預設
a.全預設參數
輸出結果:3
4
5
觀察結果,我們不難發現,當我們沒有傳參時函數預設使用 1,2作為參數,當我們傳一個參數 時,我們實際上覆寫了a的預設值,而當我們傳2個參數時,函數使用我們所傳參數作為實參。
b.部分預設參數
輸出結果:5
7
同全預設參數,部分預設參數也允許我們在函數提供預設參數時使用它的預設參數而不重新傳
值得注意的是,函數的預設參數必須連續地出現在參數清單的右邊,因為參數的覆寫總是從左 往右進行的!
5.引用
a.引用的定義
引用類似于我們給變量起了一個别名。
b.引用和指針
指針
引用
可以為null
必須為有效值
可以随時改變所指向的對象
在建立時确定,引用的對象永不改變
sizeof确定的大小永遠确定
sizeof确定引用的對象的大小
“++”“--”指針發生偏移
“++”“--”引用對象的内容改變
儲存了所指向對象的位址
引用即原來的變量的别名
c.函數的引用調用
通過上面的程式可以看出引用調用為我們提供了不少便利之處,它使我們的程式更加的簡潔
又能夠實作和指針相同的效果而避免許多指針存在的問題
tips:函數的傳回值也可以是引用,但你必須保證當你傳回了一個臨時變量的引用時必須用一個
已經建立好的變量來接收他。但通常我們不建議傳回一個臨時變量的引用。
d.const引用
請始終記得在c++裡const被嚴格的定義為readonly 請不要試圖改變由const修飾的值
我們常常使用 const 引用來保護函數中不允許被改變的參數
eg: void func(const int &a)
此時a的值不允許被改變
臨時變量的引用需加const修飾
如果此時我們檢視記憶體就會發現k和d并不存儲于同一位置,因為k引用知識d在轉化時 生成的一個臨時變量而非d本身
tips:引用常量必須加上const