本文主要是介绍调用者传递参数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1
2
3
4
5
int& DoubleValue(int nX)
{int nValue = nX * 2;return nValue; // return a reference to nValue here
} // nValue goes out of scope here
看到这里的问题?函数是试图返回一个参考值,将超出范围时,该函数将返回。这意味着调用方接收参考垃圾。幸运的是,你的编译器将如果你尝试这样做,给你一个错误。
引用返回通常用于引用返回的函数返回给调用者传递参数。在下面的例子中,我们返回(参考)的阵列,通过引用传递给函数的元素:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// This struct holds an array of 25 integers
struct FixedArray25
{int anValue[25];
};// Returns a reference to the nIndex element of rArray
int& Value(FixedArray25 &rArray, int nIndex)
{return rArray.anValue[nIndex];
}int main()
{FixedArray25 sMyArray;// Set the 10th element of sMyArray to the value 5Value(sMyArray, 10) = 5;cout << sMyArray.anValue[10] << endl;return 0;
}
这篇关于调用者传递参数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!