欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

问 在 C++ 中,"int& foo "是什么意思?

最编程 2024-06-21 08:18:43
...
代码语言:javascript
复制
int& foo();

声明一个名为foo的函数,该函数返回对int的引用。这些示例没有给出可以编译的函数的定义。如果我们用

代码语言:javascript
复制
int & foo()
{
    static int bar = 0;
    return bar;
}

现在我们有了一个函数,它返回对bar的引用。由于bar是static,它将在调用函数之后继续运行,因此返回对它的引用是安全的。现在如果我们这么做

代码语言:javascript
复制
foo() = 42;

我们将42赋值给bar,因为我们分配给引用,而引用只是bar的别名。如果我们再次调用这个函数

代码语言:javascript
复制
std::cout << foo();

它将打印42,因为我们将bar设置为上述。