// File: AbstFcry.cc #include <AbstFcry.h> #include <GeoObj.h> AbstractFactory::AbstractFactory() : Count(0) { for(int i = 0; i < MAX; i++) GeoObjs[i] = NULL; } AbstractFactory::~AbstractFactory() { for(int i = 0; i < Count; i++) { if(GeoObjs[i]) { cerr << "Deleting a " << GeoObjs[i]->GetTypeString() << " object." << endl; delete GeoObjs[i]; } } } void AbstractFactory::_SaveGeoObj(GeoObj* pg) { if(Count < MAX) GeoObjs[Count++] = pg; } void AbstractFactory::CollectGeoObj(GeoObj*& pg) { for(int i = 0; i < Count; i++) if((pg) && (GeoObjs[i] == pg)) { delete GeoObjs[i]; GeoObjs[i] = NULL; pg = NULL; } }