網頁

2022/8/9

C++ 函式回傳參照 function return reference

C++函式回傳參照(reference)的方式如下。


在函式回傳型態後加上ampersand符號&即可回傳參照。

例如下面函式RefurnRef()的回傳整數參照為int&,並在呼叫時以參照變數&b接收。印出變數ab的位址相同,且當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)函式清楚。


沒有留言:

張貼留言