gpt4 book ai didi

c++ - 什么是可修改的右值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:34:27 28 4
gpt4 key购买 nike

有人能举个“可修改右值”的例子吗?我的理解是右值出现在表达式中“=”的右边。我测试了下面的例子,但我不确定它是否解释了“可修改的右值”

int i=1
int &j = i;
j=2; //cout: i == 2,

最佳答案

这在某种程度上取决于短语“可修改的右值”的上下文。然而,这是一个可能的例子:

struct Modifiable
{
int x;
void modify() { std::cout << x << '\n'; x = -x; std::cout << x << '\n'; }
};

Modifiable demo()
{
Modifiable m;
m.x = 42;
return m;
}

int main()
{
demo().modify();
}

demo() 的返回值是一个右值(事实上,甚至是纯右值),但是通过调用 modify() 进行了修改。

[Live example]

关于c++ - 什么是可修改的右值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44786376/

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