如何在Awesomium中设置监听器? (“字段类型'监听器'是一个抽象类”错误)

时间:2013-03-01 13:20:32

标签: c++ abstract-class awesomium

我一直试图让Awesomium :: WebViewListener工作,但每当我尝试分配Listener对象时,我得到一个“字段类型'监听器'是一个抽象类”错误。

这是我的代码:

class Listener : public Awesomium::WebViewListener
{
public:
    void onCallback(Awesomium::WebView* caller,
                    const std::wstring& objectName,
                    const std::wstring& callbackName,
                    const Awesomium::JSArguments& args)
    {
        std::cout << "Hello!" << std::endl;
    }
};

// In the GUI class
Listener listener; // Field type 'Listener' is an abstract class
view->setListener(&listener);

如果我无法分配监听器对象,我该如何设置监听器?我尝试过使用boost :: shared_ptr,它不会产生任何错误,但onCallback()函数永远不会被调用。

1 个答案:

答案 0 :(得分:1)

可能有两种变体:

  1. Awesomium::WebViewListener包含多个抽象方法。如果是这样 - 你应该全部实现它们来创建派生类`Listener&#39;的实例。 (bash.d说的)
  2. Awesomium::WebViewListener::onCallback参数列表应该与您的参数列表完全相同。如果不是这样,那么您将此方法>添加到Listener,但未实现基本摘要onCallback