//定数の基底クラス class CConstBase{ char *Name; public: CConstBase(char *Name); ~CConstBase(); char *GetName(); }; //定数 class CConst:public CConstBase{ int Type; _int64 i64data; public: CConst *pNext; CConst(char *Name, int Type, _int64 i64data); CConst(char *Name, int value); ~CConst(); int GetType(); _int64 GetWholeData(); double GetDoubleData(); }; //定数マクロ class CConstMacro:public CConstBase{ int ParmNum; char **ppParm; public: CConstMacro(char *Name, char *Expression); ~CConstMacro(); }; //定数管理クラス class CDBConst{ CConst **ppHash; CConstMacro **ppobj_Macro; int NumOfMacro; //シングルトンクラスなので、プライベートに置く CDBConst(); ~CDBConst(); void _free(); void Free(); public: void Init(); void Add(char *buffer); private: void AddConst(char *Name, CConst *newconst); public: void AddConst(char *Name, char *Expression); void AddConst(char *Name, int value); private: CConst *GetObjectPtr(char *Name); public: int GetType(char *Name); _int64 GetWholeData(char *Name); double GetDoubleData(char *Name); //シングルトンオブジェクト static CDBConst obj; };