Hi - I have some design problem. I made my Template Class:
implementation of "makeString" function depends on T type <float>, <int>, <COLEDatetime>:Code:class CParam : CParamI { public: T operator=( T val ) { value = val; return value; } T getValue() { return value; } virtual CString makeString(); private: T value; };
To put my CParam objects into std::map I made CParamI interface class with only one method: "makeString". I put all my CParam<T> objects overrided to CParamI into std::map<BYTE,CParamI>. Now, what should I do if I want to update values of some objects in my map (ie. add anything to CParam<float>) ? Is there any way to recognise type of CParam<T> ? Or maybe is there any way to make map from template class objects without using additional interface class ?Code:template<> CString CParam<float>::makeString() { CString tmp; tmp.Format( _T("%0.2f"), value ); return tmp; } template<> CString CParam<int>::makeString() { CString tmp; tmp.Format( _T("%0i"), value ); return tmp; } template<> CString CParam<COleDateTime>::makeString() { return value.Format(dateFormat); }




Reply With Quote