代码之家  ›  专栏  ›  技术社区  ›  Ben

错误:缺少类型说明符-假定为int。注意C++不支持默认初始化

  •  -1
  • Ben  · 技术社区  · 2 年前

    为了制造两个物体, Player1 Player2 ,属于一个阶级 Player 发送和接收消息时,我实现了一个阻塞队列来同步消息。这是我使用的代码:

    #include <iostream>
    
    
    using namespace std;
    
    class Msg
    {
    public:
        Player* sender;
     };
    
    template <typename T>
    class BlockingQueue
    {
    public:
        void push(const T& val)
        {}
    
        T pop()
        {}
    
    };
    
    class Player
    {
        BlockingQueue<Message > queue;
    
    public:
        
        void sendMessage()
        {
        };
    
        void run()
        { //...... 
        }
    
        
    
    
    };
    

    游戏者 同学们,我得到一个错误,表明 Player* sender 不是该组织的成员 Message

    而在 消息 同学们,我发现这个错误:

    Severity    Code    Description Project File    Line    Suppression State
    
        Error   C4430   missing type specifier - int assumed. Note: C++ does not support default-int
    

    你能帮我吗?

    1 回复  |  直到 2 年前
        1
  •  2
  •   pm100    2 年前

    你必须在留言前添加一个玩家的转发声明

    class Player; <<<<=====
    class Message
    {
    public:
    
        Player* sender ;
        std::string text;
    };
    

    请看这里的解释 What are forward declarations in C++?

    是的,它应该是std::string