12. embind driving 类继承

#include <emscripten/bind.h>
#include <string>

using namespace emscripten;

class BaseClass {
public:
    BaseClass() = default;
    // virtual std::string invoke(const std::string &str) = 0;
    virtual std::string invoke(const std::string &str) {
        return str + " - from 'BaseClass'";
    }
};

class DerivedClass : public BaseClass {
public:
    DerivedClass() = default;
    std::string invoke(const std::string &str) override {
        return str + " - from 'DerivedClass'";
    }
};

EMSCRIPTEN_BINDINGS(module) {
  class_<BaseClass>("BaseClass")
      .constructor<>()
      .function("invoke", &BaseClass::invoke);
  class_<DerivedClass, base<BaseClass>>("DerivedClass")
      .constructor<>()
      .function("invoke", &DerivedClass::invoke);
}

 

posted @ 2020-07-13 12:27  猫影  阅读(88)  评论(0)    收藏  举报