在下面的代码中,_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?
答案 0 :(得分:5)
_myFoo
不是变量,它是一个返回const Foo&
并且不带参数的函数。要么改变_myFoo的声明(并且可能把它放在struct Foo中),要么返回_myFoo();并给_myFoo
一个定义。
请注意,如果myFoo确实应该是一个函数,那么你不应该在它前面添加一个下划线,因为我相信以下划线开头的函数名是保留的。