我在 C++ 应用程序中嵌入了 python。C++ 调用 python 并将其作为参数传递给 C++ 对象。该对象具有一些虚函数,并且可以是某些派生类的基类。如何让 boost::python 明白它是一个虚函数?
考虑以下内容:
在 C++ 中:
class Base {
public:
virtual void func();
}
class Derived {
public:
virtual void func();
}
BOOST_PYTHON_MODULE(module_api) {
class_<Base>("Base")
.def("func", &Base::func); // ?? what should I put here?
}
int main() {
//... initialization
Derived derived;
main_namespace["pyentry"](&derived);
}
在蟒蛇中:
def pyentry(baseref):
baseref.func() # here I want Derived::func() to be called
我在这里做错了什么?