C 单例结构队列

c++ singleton structure queue

本文关键字:队列 结构 单例      更新时间:2023-10-16

singleton变量中有一个队列。

但是,当从另一个类推动时,推动值不匹配并且错误继续。

请。

[Singleton Header]

typedef struct _Hybrid_Message_st
{
   int hy_state;
    std::string hy_msg;
} Hybrid_Message_st;
class Hybrid_Singleton
{
  private:
    static Hybrid_Singleton *instance;
    Hybrid_Singleton(void){}
  public:
    ~Hybrid_Singleton(void){}
    static Hybrid_Singleton* getInstance();
    std::queue<Hybrid_Message_st> hy_queue;
    int count;
 };

[Singleton Source]

  Hybrid_Singleton* Hybrid_Singleton::getInstance()
  {
    if(instance == NULL)
    {
        instance = new Hybrid_Singleton;
    }
    return instance;
 }
 Hybrid_Singleton *Hybrid_Singleton::instance = NULL;

[问题?]

 Hybrid_Message_st ss;
 ss.hy_state = 0;
 ss.hy_msg = "Hellow";
 Hybrid_Singleton::getInstance()->hy_queue.push(ss);

[错误]

 error: no matching function for call to ‘std::queue<_Hybrid_Message_st>::push(broadcast_server::Hybrid_Message_st&)’

看来,ss类型是broadcast_server::Hybrid_Message_st,而Singleton使用Hybrid_Message_st。注意类型之间名称空间的差异。

您可能是代码中某个地方的using broadcast_server