Поскольку вы объявили std::list
как:
std::list<customObject> objects; //not storing the pointers!
Тогда вам не нужно создавать customObject
, используя new
. Вы должны сделать это:
std::list<customObject> objects;
for(int i = 0; i < 10; ++i) {
customObject object;
object.getvalue(i);
objects.push_back(object); //store the object, not pointer!
}
В C ++ 0x это можно сделать очень кратко с помощью лямбда-выражения, например:
std::list<customObject> objects(10);
int i=0;
std::for_each(objects.begin(),objects.end(),[&](customObject &obj){
obj.getValue(i++);
});