Weiterer Klassenentwurf
// ... GeoObj* IOFactory::CreateGeoObj(const String& TypeString) { GeoObj* pProto = (*pPrototypes)[TypeString]; GeoObj* pClone = NULL; if(pProto) pClone = pProto->Clone(); else { cerr << "Error in GeoObj factory:"<< endl << " could not find prototype for a " << TypeString << endl; return NULL; } if(pClone) _SaveGeoObj(pClone); else { cerr << "Error in GeoObj factory:"<< endl << " could not clone prototype for a " << TypeString << endl; return NULL; } return pClone; } // ...