所以,我有一个类World
,其中有一个类Object
实例的向量。现在,我正在尝试在World中创建一个函数,该函数返回对向量的一个对象的引用,因此在main()
中,您可以直接将值更改为数组。它会是这样的:
class Object{
//things
}
class World{
private:
vector <Object> ObjectsInWorld;
public:
Object functionThatReturnsReference(int index){
//somehow return reference to ObjectsInWorld[index];
}
}
int main(){
World world;
Object& obj = world.functionThatReturnsReference(2);
//now changes made to obj should apply also to world's ObjectsInWorld[2]
return 0;
}
这在C ++中是可行且合法的吗? 谢谢!
答案 0 :(得分:2)
只需定义函数以返回引用(请注意svn
):
&
在你这样做之前,但是至少再想一次。除非您的对象是纯粹的容器类型,否则您通常不希望人们弄乱您的内部状态,因为您的不变量会在用户没有意识到的情况下被侵犯。
答案 1 :(得分:0)
Object& World::functionThatReturnsReference(int index)
{
/// throws an exception if index is out-of-range
return ObjectsInWorld.at(index);
}