C++函式回傳參照(reference)的方式如下。
在函式回傳型態後加上ampersand符號&
即可回傳參照。
例如下面函式RefurnRef()
的回傳整數參照為int&
,並在呼叫時以參照變數&b
接收。印出變數a
與b
的位址相同,且當a
的內容改變時b
也會跟著改變,因為兩者代表同一變數。
main.cpp
#include <iostream>
using namespace std;
int& RefurnRef(int& i) { return i; }
int main() {
int a = 1;
int& b = RefurnRef(a);
cout << &a << endl; // 0x7ffeeb53f848
cout << &b << endl; // 0x7ffeeb53f848
cout << a << endl; // 1
cout << b << endl; // 1
a++;
cout << b << endl; // 2
return 0;
}
函式回傳參照的場景多是要回傳同引數的類別參數。即傳入的類別參數內容在函式中進行了修改後回傳,明確地回傳參照在語意上會比副作用(side-effect)函式清楚。
沒有留言:
張貼留言