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);

Listener オブジェクトを割り当てることができない場合、どのようにリスナーを設定すればよいですか? エラーを発生させないboost::shared_ptrを使用してみましたが、onCallback()関数は呼び出されません。

4

1 に答える 1

1

次の 2 つのバリエーションがあります。

  1. Awesomium::WebViewListener複数の抽象メソッドが含まれています。もしそうなら - それらをすべて実装して、派生クラス「Listener」のインスタンスを作成する必要があります(bash.dはそれについて述べました)
  2. Awesomium::WebViewListener::onCallback引数リストは、あなたのものとまったく同じでなければなりません。そうでない場合は、このメソッドをに追加Listenerしましたが、基本抽象を実装していませんonCallback
于 2013-03-01T14:02:16.423 に答える