我是下面的代码,请问函数getObjects()中的point对象的范围是否有效。 我在createObj()中创建对象,因此对象“p”的范围仅限于createObj().... vector使用复制构造函数来处理这个吗?
void getObjects()
{
vector<point> vec;
creatObj(vec);
// getting correct output for object allocated in vector vec.
}
void createObj(vector<point> &vec)
{
point p;
p.x=10;
p.y=20;
vec.push_back(p);
}
答案 0 :(得分:3)
一切都很好,因为push_back
中的createObj
电话会创建副本。
答案 1 :(得分:0)
由于你没有将指针传递给向量,所以你是安全的。如果您传入指针,则需要确保指针指向的内容在您需要时保持有效。