C++单例结构队列

标签 c++ struct queue

单例变量中有一个队列。

但是从其他类推送时,推送值不匹配,继续报错。

请。

[单例标题]

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;
 };

[单例源]

  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。请注意类型之间命名空间的差异。

您可能在代码中的某处使用了 broadcast_server

关于C++单例结构队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42644351/

相关文章:

c# - 调用从 C# 获取字符指针的 C++ 函数

c - 类型 "void"的值不能分配给类型为“void(*)(struct *Queue, int) 的实体”

c# - 在 P/Invoke 中使用 ref struct 或 class

c - 在 C 中管理结构队列的最佳方法是什么?

java - 最快的读写大队列机制

c++ - 为什么它不会发生死锁?

c++ - #endif GUARD_H 是好的做法吗?

c++ - macOS High Sierra 10.13 上损坏的 c++ 标准库

c - 结构中 restrict 关键字的行为

php - 用于大规模任务调度的可扩展作业队列系统