class Foo { public: Foo() { cout << "Foo constructed" << endl; } ~Foo() { cout << "Foo destructed" << endl; } void say_hello() { cout << "Foo says: HELLO!" << endl; } }; ///////////////////// int main() { list Coll; for(int i=0; i<3; i++) { Foo* Temp=new Foo; Coll.push_back(Temp); } list::const_iterator pos; for(pos=Coll.begin(); pos!=Coll.end(); ++pos) { //delete (*pos); (*pos)->say_hello(); } Coll.clear(); }