gpt4 book ai didi

c++ - 为返回引用的函数赋值

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:07:18 25 4
gpt4 key购买 nike

#include<iostream>
using namespace std;

int &fun()
{
static int x = 10;
return x;
}
int main()
{
fun() = 30;
cout << fun();
return 0;
}

函数 fun() 通过引用返回值,但在 main() 方法中我将一些 int 分配给函数。理想情况下,编译器应该显示像 lvalue required 这样的错误,但在上述情况下程序运行正常。为什么会这样?

最佳答案

说“一个函数返回一些东西”是一种松散和草率的语言。如果您知道如何使用它作为速记就可以了,但在这种情况下您会感到困惑。

更正确的思考方式是计算一个函数调用表达式。这样做会给你一个值(value)。值可以是右值或左值(模详细信息)。

T 是一个对象类型并且你评估一个返回类型为 T 的函数时,你会得到一个 T 类型的值,它是一个右值。另一方面,如果该函数的返回类型为 T &,您会得到一个 T 类型的值,它是一个左值(并且该值是绑定(bind)到引用的东西在 return 语句中)。

关于c++ - 为返回引用的函数赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18964801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com