分配给向量的对象范围?

时间:2013-07-07 12:27:34

标签: c++ scope undefined

我是下面的代码,请问函数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);
}

2 个答案:

答案 0 :(得分:3)

一切都很好,因为push_back中的createObj电话会创建副本

答案 1 :(得分:0)

由于你没有将指针传递给向量,所以你是安全的。如果您传入指针,则需要确保指针指向的内容在您需要时保持有效。