在C++中返回常量引用
Returning a const reference in 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?
_myFoo
不是变量,它是一个返回const Foo&
的函数,它不需要任何参数。要么更改_myFoo的声明(并可能将其放在结构体 Foo 中),要么返回 _myFoo();并给_myFoo
一个定义。
请注意,如果myFoo确实应该是一个函数,则不应在它前面加上下划线,因为我相信保留了以下划线开头的函数名称。
相关文章:
- 什么时候在C++中返回常量引用是个好主意
- 通过常量引用传递参数的矩阵模板类
- 在C++中使用非常量引用作为常量
- 具有常量引用参数的函数模板专用化
- 多个"常量引用"变量可以共享同一个内存吗?
- 为什么 STL 容器适配器堆栈中的 top 返回常量引用?
- 为什么常量方法可以采用非常量引用?
- 为什么当我们有常量引用时创建临时对象?
- 如何返回向量的常量引用?
- C++:常量引用参数
- 不同于按值传递和常量引用传递的程序集
- 为什么const_cast和static_cast常量引用没有效果?
- C++ 获取函数在常量引用中按值返回的结果
- 从 BubbleSort* 类型的右值初始化 'AssortedSorter&' 类型的非常量引用无效"
- C++ 在类中使用常量引用文本时 O2 内存泄漏
- 是否可以跨 dll 边界返回常量引用/指向 std::vectors?
- C++中大多数/所有 setter 函数的参数是否应该写为常量引用?
- 通过非常量引用参数修改常量引用参数
- 将常量引用传递给线程
- 为什么C++中没有常量引用,就像常量指针一样?