帮忙解释一下函数返回类型为引用时候的情况,有我自己测试的小代码
#include<iostream>
#include<string>
using namespace std;
int i=1;
int& number(){
i++;
return i;
}
int main(){
cout<<number()<<endl;
number()=3;
cout<<number()<<endl;
getchar();
return 0;
}
输出:
2
4
修改返回值的时候怎么又调用了一次函数呢?这个过程是怎样的呢?
[解决办法]
int main(){cout<<number()<<endl; // -- 第一次调用number函数,输出返回值number()=3; // -- 第二次调用number函数,同时对返回的引用即i进行赋值操作cout<<number()<<endl; // -- 第三次调用number函数,并且输出其返回值即igetchar();return 0;}