C ++ - 返回指针或const引用

时间:2017-04-07 18:43:29

标签: c++ pointers const return-value

我有一个具有对象矢量的Container。

const vector<Foo> & getRef() { return objects; }
const vector<Foo> * getPtr() { return &objects; }

我想

  • 作为来电者具有对这些对象的只读权限
  • 避免调用复制构造函数
  • 忽略容器超出范围后访问这些对象的问题(这种情况永远不会发生)
基于此,似乎我有两个选择getter方法。将const引用返回给向量,或返回指向const向量的指针

for (const Foo & f : getRef())

当然,如果我是调用者,我需要确保在迭代时不调用复制构造函数。所以我就是这个

for (Foo f : getRef())

而不是

System.loadLibrary("c++_shared");

现在,我应该返回const引用吗?或指向const的指针?有什么好处和缺点?

1 个答案:

答案 0 :(得分:2)

参考更健壮。您无法在其上意外调用删除。