我距离最终掌握指针和参考文献的完整用途和概念还有一步之遥(或者我希望如此),所以我需要你的帮助来解决问题。
我的private
成员矢量ClassA
包含一个对象,所以vector<myObj> vec
。
我应该在ClassA
中使用什么样的getter来返回vec
以便我可以打印myObj
的内容而无需冗余分配内存?
我需要return
reference
,常规return vec
,甚至可能指向vec
答案 0 :(得分:7)
您应该通过常量引用返回:
const vector<myObj>& ClassA::getVec() const{
return vec;
}
这意味着(i)没有取得价值副本,以及(ii)来电者无法修改有助于提高计划稳定性的参考。
请注意我是如何制作成员函数const
的。这意味着您可以从ClassA
的常量实例调用此函数。
答案 1 :(得分:2)
您可以将const引用返回到向量:
const vector<myObj>& get() const
{
return vec;
}