ont*_*cks 2 c++ class vector accessor stdvector
我有一个类有成员的类 std:vector
private:
std::vector<int> myVector;
Run Code Online (Sandbox Code Playgroud)
我创建了Get方法来访问 myVector
1. const std::vector<int> GetMyVector() const;
2. const void GetMyVector(std::vector<int>& vec) const;
Run Code Online (Sandbox Code Playgroud)
实现分别如下:
1. const std::vector<int> MyClass::GetMyVector() const
{
return myVector;
}
2. const void MyClass::GetMyVector(std::vector<int>& vec) const
{
vec = myVector;
}
Run Code Online (Sandbox Code Playgroud)
两种Get方法中哪一种更好,为什么?
我更喜欢选项3:
const std::vector<int>& MyClass::GetMyVector() const
{
return myVector;
}
Run Code Online (Sandbox Code Playgroud)
您的选项1返回了一份副本myVector
.这将返回对类成员的const(so read-only)引用.