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
ここで何が間違っていますか?