程式一:
#include using namespace std;
int change(int& num)
int main()
程式出錯,顯示num不能被更改,這也好理解,因為num使用了const修飾,所以不能被改變。那問題就來了:
採用引用是希望改變形參,而const要求不能改變,這不是矛盾了嗎?,為什麼要用cosnt和引用結合使用呢?因為結合使用有其他的好處。
這樣的乙個
const
引用傳遞和最普通的函式按值傳遞的效果是一模一樣的
,他禁止對引用的物件的一切修改
,唯一不同的是按值傳遞會先建立乙個類物件的副本
, 然後傳遞過去
,而它直接傳遞位址
,所以這種傳遞比按值傳遞更有效
.另外只有引用的
const
傳遞可以傳遞乙個臨時物件
,因為臨時物件都是
const
屬性,
且是不可見的
,他短時間存在乙個區域性域中
,所以不能使用指標
,只有引用的
const
傳遞能夠捕捉到這個傢伙.
該段文字來自:
引用 const引用和非const引用
引用構造了物件的乙個同義詞,是c 物件的另乙個名字。在實際程式中,引用的主要作用是作函式的形參。引用是一種復合型別1,它通過在變數名前新增 來定義。在使用引用的情況下,每一種引用型別都關聯到某一其他型別。c 不能定義引用型別的引用,但是可以定義任何其他型別的引用。int a 100 int refa...
指標和引用,const 指標和const 引用
指標和引用是在使用中經常弄混淆的兩個概念。引用 reference 為物件起了另外乙個名字,用符號 表示。name,例如 int i 1024 int ref i 一般在初始化變數時,初始值會被拷貝到新建立的物件中,然而定義引用時,程式把引用和它的初始值繫結 bind 在一起,而不是將初始值拷貝給引...
const引用和普通引用
一 引用所繫結的型別和所引用的物件型別需嚴格匹配。除了兩個例外 1 普通引用必須繫結到物件,不能繫結到常量 int a 3 錯誤 2 const引用 1 初始化const引用允許用任意表示式,只要該表示式的結果能轉化為引用型別即可 2 允許乙個const引用繫結非常量物件,字面值,甚至是一般表示式 ...