// File: AbstFcry.h #ifndef AbstractFactory_h #define AbstractFactory_h 1 class GeoObj; class AbstractFactory { private: enum{MAX = 1000}; int Count; GeoObj* GeoObjs[MAX]; AbstractFactory(const AbstractFactory&); // not allowed AbstractFactory& operator=(const AbstractFactory&); protected: void _SaveGeoObj(GeoObj*); public: AbstractFactory(); virtual ~AbstractFactory(); virtual GeoObj* CreateGeoObj() = 0; virtual operator void*() const = 0; // can create more objects? virtual void CollectGeoObj(GeoObj*&); }; #endif