给出以下简单代码:
list<MyClass> m_listOfOBjects;
....
MyClass* ptrToMyClass;
BOOST_FOREACH(MyClass object, m_listOfObjects)
{
ptrToMyClass = &object
}
我的问题是ptrToMyClass现在指向列表中的时间对象还是真实对象。如果是第一种情况,是否有某种方法可以获取指向列表中对象的指针,而不是由BOOST_FOREACH循环创建的时间变量?
最佳答案
作为声明MyClass object
,object
将是一个副本,而不是列表中的对象。尝试使用引用,
BOOST_FOREACH(MyClass& object, m_listOfObjects)
{
ptrToMyClass = &object;
}