Very simple codes located in the same file 'foo.h':
class Xface
{
  public:
    uint32_t m_tick;
    Xface(uint32_t tk)
    {
      m_tick=tk;
    }
}
std::map<uint32_t, Xface*> m;
Xface* tmp开发者_开发技巧;
tmp = new Xface(100);  **//Error**
m[1] = tmp;  **//Error**
tmp = new Xface(200);  **//Error**
m[2] = tmp;  **//Error**
The error is error: expected constructor, destructor, or type conversion before '=' token for every assignment.
C++ is not a scripting language. You can declare items outside the bounds of an executable block of code, but you cannot do any processing. Try moving the erroring code into a function like this:
int main()
{
    std::map<uint32_t, Xface*> m;
    Xface* tmp;
    tmp = new Xface(100);  **//Error**
    m[1] = tmp;  **//Error**
    tmp = new Xface(200);  **//Error**
    m[2] = tmp;  **//Error**
}
Your code must be inside some function, you can't just put it in void :-) Try running the same code in main and see, what happens.
class Xface
{
  public:
    uint32_t m_tick;
    Xface(uint32_t tk)
    {
      m_tick=tk;
    }
}    // need a semicolon here
You are missing a semicolon at the end of the class definition.
You have no default constructor.  You need to have a constructor that doesn't need any arguments.  Right now, you've got a constructor that needs a uint32_t, so you can't new an array of them.  Not to mention, as Neil pointed out, the missing semicolon, and gruszczy's observation that executable code needs to be in a function.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论