#ifndef _PLAYSTRING_H #define _PLAYSTRING_H #include #include class Playstring { public: Playstring(const wchar_t *val=NULL); Playstring(const Playstring &ps); ~Playstring(); const wchar_t *getValue() const { return val; } operator const wchar_t *() const { return getValue(); } void setValue(const wchar_t *newval); // copy Playstring& operator =(const Playstring &ps); protected: void _setValue(const wchar_t *newval, int tablenum); private: const wchar_t *val; }; class PlaystringComparator { public: // comparator for sorting static int compareItem(Playstring *p1, Playstring* p2) { return wcscmp(p1->getValue(), p2->getValue()); } }; template class PlaystringT : public Playstring { public: PlaystringT(const wchar_t *newval) { val = NULL; setValue(newval); } PlaystringT(const Playstring &ps) { val = NULL; setValue(ps.getValue()); } void setValue(const wchar_t *newval) { _setValue(newval, tablenum); } }; #endif