【问题标题】:No matching function to gloox::ChatStateFilter::ChatStateFilter()没有与 gloox::ChatStateFilter::ChatStateFilter() 匹配的函数
【发布时间】:2016-02-27 17:13:48
【问题描述】:

尽管使用了文档和示例中定义的实现,但我收到了标题中的错误。我不确定出了什么问题。还有一个额外的错误,No matching function for call to gloox::MessageEventFilter::MessageEventFilter() 也试图使用该对象。我的代码示例如下:

class TuiHangouts : public ConnectionListener, LogHandler, MessageSessionHandler, MessageHandler,
    MessageEventHandler, ChatStateHandler, RosterListener, EventHandler, ChatStateFilter,
    MessageEventFilter
{
public:
    TuiHangouts();
    virtual ~TuiHangouts();
}

在 *.cpp 文件中:

GekkoFyre::TuiHangouts::TuiHangouts() : m_session(0), m_messageEventFilter(0), m_chatStateFilter(0)
{}

对此的任何帮助将不胜感激,谢谢。正如您可能已经猜到的,我试图在我的项目中实现的库是 gloox 库。如果有帮助,请在此处提及。

请注意,虽然我是一名优秀的编码员,但我没有受过正规教育,而且这些程序员使用的许多术语对我来说都是难以理解的。请记住这一点:)

【问题讨论】:

  • 据我所知,您是从ChatStateFilter 继承的,并且它可能没有您可以使用的默认构造函数。
  • @πάντα ῥεῖ,我有一个全球 MessageEventFilter *m_messageEventFilter;ChatStateFilter *m_chatStateFilter; 在私人下。还是你说的不是这个?

标签: c++ virtual gloox


【解决方案1】:

their reference 可以看出,ChatStateFilter 不提供默认构造函数,而仅提供

ChatStateFilter (MessageSession *parent);

当你用你的类继承那个类时,你需要在你的成员初始化列表中调用构造函数:

GekkoFyre::TuiHangouts::TuiHangouts() : ChatStateFilter(&m_session), // ...
{}

【讨论】:

  • 谢谢你,@πάντα ῥεῖ!但是示例源提供了一些完全不同的东西,这就是我在我的问题中提供的。据我所知,我完全按照它的方式实现了它,并得到了完全不同的结果。哦,好吧,在构造函数和继承方面学到了另一个教训:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 2014-08-16
  • 2020-12-10
相关资源
最近更新 更多