1. 如何從建立引用?
2. 引用型別初始化
3. 更改別名?
4. 一般性的準則
1. 如何建立引用?
cpp中引用通過typename&實現建立,如下:
int a = 10; int& alias = a;
2. 引用型別初始化 ?
引用型別需要在建立之初初始化,否則編譯器將報錯:
int a = 10; // 必須初始化,否則報錯 int& alias = a;
3. 更改引用型別?
引用變數指向的記憶體位址是在初始化完成之後無法改變的,例如int& alias = a;(假設a是先前宣告的變數),那麼變數alias始終是指向a變變數的記憶體區域的,如果試圖對alias變數賦值的話,最終將反映在變數a上。
int a = 10; int& alias = a; int b = 0; alias = b; // 現在a的值變成0
4. 一般性的準則
4.1 不能返回區域性變數的引用
4.2 使用引用不一定會帶來 效能上的提公升,如果傳遞的是比較小的型別的話,直接使用傳值即可。
4.3 如果在函式中不修改引數的值,同時又想提公升效能的話,請將const和引用合併使用
Cpp深入 函式過載
1.函式過載特徵function signature 2.過載解析 1.函式過載特徵 cpp中過載的函式對用函式的使用者的表象是函式同名,但是對於編譯器來講,編譯器根據函式的特徵將函式重新命名,這也是為什麼c 和c相互呼叫時需要使用extern c 的原因。那麼什麼是函式的特徵?一般函式的特徵是指函...
Cpp深入 函式過載
1.函式過載特徵function signature 2.過載解析 1.函式過載特徵 cpp中過載的函式對用函式的使用者的表象是函式同名,但是對於編譯器來講,編譯器根據函式的特徵將函式重新命名,這也是為什麼c 和c相互呼叫時需要使用extern c 的原因。那麼什麼是函式的特徵?一般函式的特徵是指函...
Cpp 型別轉換
c風格的型別轉換c 完全相容。c 新增了四個顯式型別轉換運算子。1 靜態型別轉換 static cast 目標型別 a.將基類的指標或引用轉換為子類的指標或引用 b.自定義型別轉換。它允許子類型別的指標轉換為父類型別的指標 這是乙個有效的隱式轉換 同時,也能夠執行相反動作 轉換父類為它的子類,但會給...