static map initialization

后端 未结 2 1486
南方客
南方客 2020-12-16 11:59

I have the following code :I have the following code:

//MyClass.h
class MyClass {
public:
      typedef std::map OpMap;
      static          


        
2条回答
  •  青春惊慌失措
    2020-12-16 12:15

    As you are using VS2010, you need to initialize your static member in MyClass.cpp, in front of any other member function definitions. call MyClass::InitMap() if you want to initialize opMap_.

    MyClass.h

    class MyClass
    {
    public:
      MyClass(void);
      ~MyClass(void);
    public:
       typedef std::map OpMap;
       static OpMap opMap_;    
       static void InitMap();
    };
    

    MyClass.cpp

    std::map MyClass::opMap_;
    MyClass::MyClass(void)
    {
       InitMap(); // just sample if you want to initialize opMap_ inside MyClass constructor
    }
    
    void InitMap()
    {
      MyClass::opMap_["x"] = 1;
    }
    

提交回复
热议问题