c++ - How to initialise a std::map once so that it can be used by all objects of a class? -
i have enum stackindex defined follows:
typedef enum { deck, hand, cascade1, ... no_such_stack } stackindex;
i have created class called movesequence
, wrapper std::deque
of bunch of tuples of form <stackindex, stackindex>
.
class movesequence { public: void addmove( const tpl_move & move ){ _m_deque.push_back( move ); } void print(); protected: deque<tpl_move> _m_deque; };
i thought create static std::map
member of movesequence
class, translate stackindex
std::string
, use print()
function. when tried, got error:
"error c2864: 'movesequence::m' : static const integral data members can initialized within class"
if not possible created std::map static member, there way create std::map translates stackindex
std::string
can used print out movesequence
objects?
thanks
beeband.
you can make std::map static member of class. can't initiliaze within class definition. note error telling you:
error c2864: 'movesequence::m' : static const integral data members can *initialized* within class
so, want have in header:
class movesequence { static std::map<stackindex, std::string> _m_whatever; };
and in source (.cpp) file want this:
std::map<stackindex, std::string> movesequence::_m_whatever( ..constructor args.. );
Comments
Post a Comment