在C ++中返回一个const引用

时间:2014-02-23 04:41:55

标签: c++

在下面的代码中,_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?

1 个答案:

答案 0 :(得分:5)

_myFoo不是变量,它是一个返回const Foo&并且不带参数的函数。要么改变_myFoo的声明(并且可能把它放在struct Foo中),要么返回_myFoo();并给_myFoo一个定义。

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