C++引用作为函数的返回值

159 阅读1分钟
#include <iostream>
using namespace std;

/*
引用做函数的返回值
作用:引用是可以作为函数的返回值存在的

注意:不要返回局部变量引用
用法:函数调用作为左值
*/

//1. 不要返回局部变量的引用
int& test01()
{
    int a = 10;  //报错
    return a;
}

//2. 函数调用可以作为左值
int& test02()
{
    static int a  = 10;
    return a;
}

int main()
{
    
    int &ref = test01();

    cout << "ref = " << ref << endl;  //第一次正确是因为编译器做了保留
    cout << "ref = " << ref << endl;
    
    int &ref2 = test02();  //函数调用可以作为左值

    cout << "ref2 = " << ref2 << endl;
    cout << "ref2 = " << ref2 << endl;
    
    test02() = 1000;

    cout << "ref2 = " << ref2 << endl;
    cout << "ref2 = " << ref2 << endl;

    system("pause");
    return 0;
}