我理解C++中引用的概念,也知道它们在函数参数中使用时的作用,但是我仍然非常困惑它们如何与返回类型一起使用。
例如,在参数中使用时,下面的代码:
int main (void) {
int foo = 42;
doit(foo);
}
void doit (int& value) {
value = 24;
}
类似于以下代码:
int main (void) {
int foo = 42;
doit(&foo);
}
void doit (int* value) {
*value = 24;
}
(知道编译器会在每次在doit的第一个代码示例中使用value时自动在其前面放置一个星号,但在后者中,您必须自己在每次尝试使用value时放置星号)
那么,当用作引用时,下一个代码(在返回类型中使用引用)的翻译是什么?它会返回一个指向int的指针吗?还是只返回一个int?
int main (void) {
int* foo = /*insert useful place in memory*/;
foo = doit(foo);
}
int& doit (int* value) {
//insert useful code
}