cpp中常量引用中const和型別的位置關係
阿新 • • 發佈:2020-12-28
1.常量引用
int a=0; int const&b=a;//將const放在型別後面 b=6; #編譯報錯: error: assignment of read-only reference 'b' int a=0; const int &b=a;//將const放在型別前面 b=6; #編譯報錯: error: assignment of read-only reference 'b'
以上的程式碼說明常量引用中const和資料型別的位置先後是不影響效果的。
int a=0; int &const b=a;//嘗試將const放在&後面 b=6; //編譯報錯: error: 'const' qualifiers cannot be applied to 'int&'
因為引用本來就不能指向別的,只能是一個變數的別名,也就是說只能和一個變數繫結:
int a=0,c=1; int & b=a; b=c;//嘗試指向別的變數 c=2; cout<<a<<" "<<b<<" "<<c; //輸出 1 1 2
以上程式碼中b=c並不是將b指向新的變數,而是將b和a修改為c的值,通過之後的輸出也可以看出來。
int a=0,c=1; const int & b=a; b=c;//嘗試更改值 //編譯報錯 error: assignment of read-only reference 'b'
2.引用在出現時就要初始化
int a=0; int & b; b=a; //編譯報錯: error: 'b' declared as reference but not initialized
以上做了不少小實驗驗證了知識點。