我有一个函数,我传入一个指向MyClass
数组的指针,我想在函数中创建一个对象并将其存储在数组中。目前我无意中修改了我的对象的副本,因此当函数返回时,MyClass的数组不包含我所做的更改。我应该怎么改变这个?我假设一个简单的解决方法是在最后移动将对象添加到数组中,但有没有办法可以修改对新创建的对象的引用?
void x(MyClass* a){
//Create object on stack
MyClass my_obj(30);
//Add object to array
a[30] = my_obj;
//These changes don't get made because the object in the array is a copy
//of the object I created on the stack.
my_obj.datamember[0] = 3;
my_obj.datamember[1] = 7;
//The array is "returned" because I am passing by pointer
}
答案 0 :(得分:0)
请改用vector<MyClass>
。然后你可以简单地做一些事情:
a.push_back(my_obj);
和
a.erase(a.remove(/*...*/));