清单 1. 基类 Shape 的头文件

#ifndef __SHAPE_H
#define __SHAPE_H
#include <map>
#include <string>
// base class for all shapes
class shape {
public:
   virtual void draw()=0;
};
// typedef to make it easier to set up our factory
typedef shape *maker_t();
// our global factory
extern map<string, maker_t *, less<string> > factory;
#endif // __SHAPE_H
© . All rights reserved.