gpt4 book ai didi

理解右值引用的 C++ 语法

转载 作者:太空宇宙 更新时间:2023-11-04 15:03:18 25 4
gpt4 key购买 nike

我正在阅读 Thomas Becker 关于 c++11 右值引用的博客, 页面底部附近的以下语法确实让我感到困惑。

  int& foo();
foo() = 42; // ok, foo() is an lvalue

foo 到底是什么?返回 int 的函数指针;一个东西?

如果是函数对象,如何给它赋值,为什么 foo 是左值?

最佳答案

int& foo(); 声明了一个函数 foo,它不接受任何参数并返回对 int 的引用。例如,

#include <iostream>

int a = 0;
int& foo();

int main()
{
std::cout << a << std::endl;
foo() = 42;
std::cout << a << std::endl;
}

int& foo() { return a; }

输出:

0
42

关于理解右值引用的 C++ 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560656/

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