我想让我的集合在类之外不可变。
来自这里:
public:
vector<int>& getValues(){
return values;
}
private:
vector <int>& values;
为此:
public:
vector<int> getValues(){
return values;
}
private:
vector <int>& values;
它会正常工作吗?
最佳答案
它会工作,但你最好返回一个 const 引用:
const vector<int> & getValues() const {
return values;
}
此外,在类中存储引用通常(不总是)是一个错误。您可能需要一个值,或者可能需要一个指针。
关于C++ 按值返回集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5909600/