所以我有一个类Scene
,它包含另一个类'Object'的元素向量。现在,在我的main()中,我想对Object进行更改,这也必须应用于类中Object向量内的对象实例。
我的想法是创建一个函数,将对象放在向量中,并返回对它的引用,这样从main可以更改它并使更改影响向量。它只与一个对象完美配合。问题是,如果我使用多个对象,它就会停止工作,并且没有任何对象改变它的位置,甚至不会改变之前工作的第一个对象。有什么问题?有没有更好的方法来做到这一点(我是c ++ hehe的新手)
谢谢!
我的代码是这样的:
class Object{
private:
int posX, posY;
string name;
public:
Object(){
name = "Object" + id;
}
int getPositionX(){
return posX;
}
int getPositionY(){
return posY;
}
void setPosition(int positionX, int positionY){
posX = positionX;
posY = positionY;
}
};
我的场景类:
class Scene{
private:
vector <Object> objectsInScene;
public:
Scene(){
cout << "Scene created";
}
vector <Object> getObjectsInScene(){
return objectsInScene;
}
Object& insertObject(Object newObject){
objectsInScene.push_back(newObject);
return objectsInScene[objectsInScene.size()-1];
}
};
和我的主要:
int main(){
Scene mScene;
Object myObj;
Object secondObj;
secondObj.setPosition(15,15);
myObj.setPosition(7,7);
Object& myObject = mScene.insertObject(myObj);
Object& secondObject = mScene.insertObject(secondObj);
//other things
switch(cin.get()){
case 'w':
myObject.setPosition(3,3);///This is the one that doesn't work
break;
}
}