在C++中返回常量引用

Returning a const reference in C++

本文关键字:常量 引用 返回 C++      更新时间:2023-10-16

在下面的代码中,_myFoo是对 Foo 类型的对象的 const 引用。

struct Foo
{
};
const Foo& _myFoo();
const Foo& GetMyFoo()
{
    return _myFoo;
}

当我尝试编译它时,出现以下错误:

error: invalid initialization of reference of type 'const Foo&' 
from expression of type 'const Foo& (*)()'

我做错了什么?有没有办法通过函数调用返回_myFoo?

_myFoo不是

变量,它是一个返回const Foo&的函数,它不需要任何参数。要么更改_myFoo的声明(并可能将其放在结构体 Foo 中),要么返回 _myFoo();并给_myFoo一个定义。

请注意,如果myFoo确实应该是一个函数,则不应在它前面加上下划线,因为我相信保留了以下划线开头的函数名称。