c++ - 如何返回 vector 的 'read-only' 拷贝

标签 c++ const-correctness

我有一个具有私有(private)属性 vector rectVec 的类;

class A {
private:
   vector<Rect> rectVec;
};

我的问题是如何返回我的 Vector 的“只读”拷贝? 我正在考虑这样做:

class A {
public:
  const vect<Rect>& getRectVec() { return rectVect; }
}

这是正确的方法吗? 我在想这样可以防止被调用者修改 vector (在 vector 中添加/删除Rect),那么 vector 里面的Rect呢?

最佳答案

这是正确的方法,尽管您可能也希望将函数设为 const

class A {
public:
  const vect<Rect>& getRectVec() const { return rectVect; }                           
};

这使得人们可以使用 const A 对象调用 getRectVec

关于c++ - 如何返回 vector 的 'read-only' 拷贝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2465751/

相关文章:

C++11 智能指针 Make 可变大小对象函数

c++ - 如何在 Qt5 中创建/读取/写入 JSON 文件

c++ - 将两个文本文件合并为一个文件会产生不同的输出

c++ - 如何正确组合可变对象 const

c++ - vector<string> 如何存储在内存中

C++ - 在具有非类型模板参数的模板化类上专门化函数模板

c - 为堆分配的对象丢弃 `const` 是否合法/安全?

c++ - 为什么 g++ 和 MS Visual Studio C++ 执行以下代码的方式不同?

c++ - 资源句柄常量正确性

c++ - 将 const 添加到指针类型