【发布时间】:2013-12-19 21:08:36
【问题描述】:
我有一个类的成员类型为std:vector
private:
std::vector<int> myVector;
我已经创建了 Get 方法来访问myVector
1. const std::vector<int> GetMyVector() const;
2. const void GetMyVector(std::vector<int>& vec) const;
分别实现如下:
1. const std::vector<int> MyClass::GetMyVector() const
{
return myVector;
}
2. const void MyClass::GetMyVector(std::vector<int>& vec) const
{
vec = myVector;
}
两种 Get 方法中哪一种更好,为什么?
【问题讨论】:
-
第一个选项复制向量,这不是get的思想。第二个选项允许在函数调用后对 myVector 进行写访问...
-
您希望调用者拥有自己的向量副本,还是希望他们有权访问数据成员?
-
@juanchopanza 目的只是为了访问会员。无意复制。
-
好的,你的方法都没有这样做,所以它们都很差。
-
@juanchopanza 我应该和 simonc 一起去
标签: c++ class vector stdvector accessor