向量的返回类型

Return type for a vector

本文关键字:返回类型 向量      更新时间:2023-10-16

我有一个具有private: vector<ClassB> vecClassA。我正在ClassA::fillVec()中填充矢量。

现在我想return矢量(通过引用?所以没有复制),我也希望禁止使用const进行任何进一步的更改。

仍然让我困惑的是语法。到目前为止,我所拥有的是const std::vector<ClassB> &ClassA::fillVec(...) const {}

但我不知道这是否正确。即使是正确的,我在互联网上找到了这个解决方案,所以如果有人能解释为什么两个const

第一个const表示返回类型为const引用,即不能通过引用修改向量。

末尾的const表示不允许成员函数修改(ClassA)对象。因此,允许在constClassA实例上调用该方法。当然,这与假设它应该修改成员的函数的目的相矛盾;因此它不应该是CCD_ 14。

您希望返回一个const引用以防止用户更改它;但是函数本身不能是const,因为它修改了类成员。

const std::vector<ClassB> &fillVec(<parameters>);
^                                               ^
const return value                              no const here

您可以在成员函数上使用第二个const,这些函数不应该修改它们被调用的对象