0

我一直试图让 Awesomium::WebViewListener 工作,但是每当我尝试分配 Listener 对象时,我都会收到“字段类型'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() 函数。

4

1 回答 1

1

它可能有两种变体:

  1. Awesomium::WebViewListener包含多个抽象方法。如果是这样-您应该全部实现它们以创建派生类“侦听器”的实例(bash.d 说过)
  2. Awesomium::WebViewListener::onCallback参数列表应该完全等于你的。如果不是这样,那么您将此方法添加Listener到,但未实现基本抽象onCallback
于 2013-03-01T14:02:16.423 回答