我的尝试:
class myClass {
std::vector<int> myVector;
public:
myClass(std::vector<int> &v) {
this->myVector = v;
}
void doSomething() {
for (int &num : this->myVector) {
num += 100;
}
}
};
在 main() 中:
vector<int> myVect = {1,2,3,4};
myClass myClassInst(myVect);
myClassInst.doSomething();
然后检查:
for (int i : myVect) {
printf("%i\n", i);
}
不对原始 vector 进行任何更改。
最佳答案
如果要存储对类中另一个对象的引用,则需要使用实际引用原始对象的内容。引用看起来是显而易见的选择,但它们是糟糕的数据成员!相反,您想使用指针:
class myClass {
std::vector<int>* myVector;
public:
myClass(std::vector<int>& vector): myVector(&myVector) {}
void doSomething() {
for (auto& num: *myVector) {
num += 100;
}
}
};
关于c++ - 如何通过引用将 vector 分配给对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20589148/