Cpp深入 引用型別

2021-08-25 19:57:29 字數 606 閱讀 4467

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.自定義型別轉換。它允許子類型別的指標轉換為父類型別的指標 這是乙個有效的隱式轉換 同時,也能夠執行相反動作 轉換父類為它的子類,但會給...