singleton变量中有一个队列。
但是,当从另一个类推送时,推送值不匹配,错误继续。
请。
单例标头
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&)’发布于 2017-03-07 17:28:45
看起来ss类型是一个broadcast_server::Hybrid_Message_st,而Singleton使用的是Hybrid_Message_st。请注意这两种类型在命名空间上的区别。
有可能你在代码中的某个地方使用了using broadcast_server。
https://stackoverflow.com/questions/42644351
复制相似问题