2013-03-01 53 views
0

我一直在试图获得一个Awesomium :: WebViewListener的工作,但每当我尝试分配监听器对象时,我都会得到一个“Field type'Listener'抽象类“错误。如何在Awesomium中设置侦听器? (“Field type'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

不Awesomium :: WebViewListener包含任何抽象方法?如果是这样你就必须执行那些... – 2013-03-01 13:40:18

回答

1

这可能是两个变种:

  1. Awesomium::WebViewListener包含超过一个抽象方法。如果是这样 - 你应该实现它们来创建一个派生类`Listener'的实例(bash.d说的)
  2. Awesomium::WebViewListener::onCallback参数列表应该与您的参数列表完全相同。如果不是这样,那么你添加这种方法Listener,但没有实现抽象基onCallback
+0

谢谢!当我在Awesomium :: WebViewListener中实现所有虚拟函数时,它工作正常! – whoosy 2013-03-01 14:25:59

+0

恕我直言,老实说,要求@ bash.d将他的评论作为答案并投票(至少) – borisbn 2013-03-01 14:29:17

相关问题