问C++中两种保存数据方法的区别
需要用一个容器保存多种数据类型
暂时想到以下两种方法
1、
容器中存储CData结构
class CData{public: enum _Type_DataType { DT_..., DT_... }; void *m_pData; _Type_DataType m_type;};CData a = con.getData();if(a.m_type == DT_STRING){ string &str = &a.m_pData;}class CDataBase{ enum_Type_DataType{DT_STRING,DT_POINTER}... vritual _Type_DataType getDataType();};class CDataString : public CDataBase,string{ _Type_DataType getDataType(){return DT_STRING}; ... }CDataBase *p = con.getData();if(p->getDataType()==DT_STRING){ CString &pstr = *p;}