我有一个成员变量vector<Foo> m_list
在某些方法中,我在Foo类型
中创建自动变量aFoo a;
m_list.push_back(a)
m_list [0]可能无效吗?
Class Foo
{
vector<int> _colors;
vector<int> _flowers;
}
答案 0 :(得分:2)
一旦局部变量m_list[0]
超出范围,您似乎会担心a
会发生什么。不要。 push_back
实际上将a
的副本推送到m_list
。现在;如果您期望a
和m_list[0]
是相同的,那么可能会导致其他问题,但只要ClassA
具有正常运行的复制构造函数(并且基于您的编辑,它会) ,试图访问被破坏的对象不会成为其中之一。