向量的返回类型
Return type for a vector
我有一个具有private: vector<ClassB> vec
的ClassA
。我正在ClassA::fillVec()
中填充矢量。
现在我想return
矢量(通过引用?所以没有复制),我也希望禁止使用const
进行任何进一步的更改。
仍然让我困惑的是语法。到目前为止,我所拥有的是const std::vector<ClassB> &ClassA::fillVec(...) const {}
但我不知道这是否正确。即使是正确的,我在互联网上找到了这个解决方案,所以如果有人能解释为什么两个const
第一个const
表示返回类型为const
引用,即不能通过引用修改向量。
末尾的const
表示不允许成员函数修改(ClassA
)对象。因此,允许在const
ClassA
实例上调用该方法。当然,这与假设它应该修改成员的函数的目的相矛盾;因此它不应该是CCD_ 14。
您希望返回一个const
引用以防止用户更改它;但是函数本身不能是const
,因为它修改了类成员。
const std::vector<ClassB> &fillVec(<parameters>);
^ ^
const return value no const here
您可以在成员函数上使用第二个const
,这些函数不应该修改它们被调用的对象
相关文章:
- 如何获取std::result_of函数的返回类型
- 奇怪的结构&GCC&clang(void*返回类型)
- 如何建立使用模板函数的lambda函数的尾部返回类型
- 为什么与常规GCC不同,即使有"学究性错误",MinGW-GCC也能容忍丢失的返回类型
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 函数作为模板参数,是否对返回类型强制约束
- C++中函数的向量返回类型引发错误
- 检查函数返回类型是否与STL容器类型值相同
- 为什么返回类型中需要typename?C++
- <Windows>为什么 std::thread::native_handle 返回类型为"long long unsigned int"的值,而不是 void*(又名 HANDLE)?
- 警告:在函数返回类型 [-Wignore 限定符] 时忽略类型限定符
- 为什么 c++(g++) 不允许模板返回类型和函数名称之间有空格?
- 在C++中使用成员函数向量时,有没有办法实现协变返回类型
- 调用函数时,如何通过向量返回类型
- 如果返回了向量的一个项,lambda表达式的返回类型是什么
- C++返回一个向量(将 int 转换为非标量类型)
- 向量的返回类型
- 返回 TCHAR * 类型向量的函数未正确返回它
- 如何找出nviews向量的返回类型