【发布时间】:2013-12-14 22:48:46
【问题描述】:
我的尝试:
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当然应该通过object来改变。最后一个循环用于检查。
-
您通过引用将向量传递给构造函数,但构造函数将传递的向量的内容复制到数据成员
myVector。也就是说,myClassInst.myVector和myVect是不相关的。
标签: c++ oop pass-by-reference