这应该是一个简单的问题,但对于我来说,我无法在网上找到解决方案。
简而言之,创建一个对象并将其添加到指针列表中对我不起作用 - 一旦我尝试以与创建它的位置不同的方法访问列表中的项目,它就会产生访问冲突。
所以两个问题:
1:最好的方法是什么?
2:随后,如果不使用指针列表,从列表中删除的最佳方法是什么?
int main( int argc, const char* argv[] )
{
std::list<testClass*> list;
addClass(list);
std::cout << list.front()->a; //item added to list now longer accessible
}
void addClass(std::list<testClass*> list)
{
testClass* c = new testClass();
c->a = 1; c->b = 2;
list.push_back(c); //item still accessible here
}
class testClass
{
public:
int a;
int b;
};