c++ - 哪种获取成员方法更好?

标签 c++ class vector stdvector accessor

我有一个类,它有一个 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 方法中哪种更好,为什么?

最佳答案

我更喜欢选项 3:

const std::vector<int>& MyClass::GetMyVector() const
{
    return  myVector;
}

您的选项 1 返回了 myVector 的拷贝。这将返回对类成员的 const(因此是只读的)引用。

关于c++ - 哪种获取成员方法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20357433/

相关文章:

类中的 C++ 常量结构初始化

python - 在python中的类中创建对象

arrays - 如何在 Swift 中实例化一个类(存储在数组中)?

python - 将子对象的方法放置在我的类中

c++ - 使用 boost python 将 python 列表传递给 c++ 扩展

c++ - 将右值引用传递给右值引用参数时发生错误

.net - 在 native C++ 应用程序中使用 .NET 程序集

c++ - 运算符重载 operator= 使用友元函数

Java - 对字符串数组进行排序/按字母顺序排列

c++ - 当每个字符串由 "delete"创建时,如何在 "vector<string>"的元素上调用 "new char[]"?