百度百科裡的解釋:引用就是某一變量(目標)的一個別名,對引用的操作與對變量直接操作完全一樣。用&符號表示
舉例:
1 using namespace std; 2 int _tmain(int argc, _TCHAR* argv[]) 3 { 4 int love = 520; 5 int &ai=love; 6 /*ai是整型變量love的別名 對ai的操作實際就是對love的操作 7 注意ai前邊的&的符號不是取地址運算符 這裡是引用運算符 8 它們的符號一樣 但功能卻不一樣 9 */ 10 cout << "ai:" << ai << endl; //實際就是在對love變量操作 所以ai值是520 11 ai = 0; 12 cout << "love:" << love << endl; // 上一行ai = 0 那麼love的值也變了 為0 13 cin.get() ; 14 return 0; 15 }
我們把上邊的代碼稍微改一下來區分:
1 #include <iostream> 2 using namespace std; 3 int _tmain(int argc, _TCHAR* argv[]) 4 { 5 int love = 520; 6 int &ai=love; 7 8 cout << "love的地址:" << &love << endl; //取love變量地址 9 cout << "ai的地址:" << &ai << endl; ///取別名ai地址 10 cin.get() ; 11 return 0; 12 }
可以看見內存地址都一樣,這樣我們就能明白引用就是引用別名,對別名操作就是對原名的操作。
2.引用對象:
1 #include <iostream> 2 using namespace std; 3 class myCls //定義類 4 { 5 public: 6 int AddNum(int x,int y) 7 { 8 return x + y ; 9 } 10 11 }; 12 int _tmain(int argc, _TCHAR* argv[]) 13 { 14 myCls Love ; //先用定義好的類創建一個對象Love 15 myCls &rlove = Love; // 定義對象love的別名為rlove 16 // myCls &rmyCls = myCls; 錯誤 我們不能對類進行定義別名 17 int sum = rlove.AddNum(2,3); //定義好後 就可以對別名進行類裡的數據成員調用訪問了 18 cout << sum << endl; 19 cin.get() ; 20 return 0; 21 }