나는 파이썬을 C++ 애플리케이션에 임베드했다. C++은 파이썬을 호출하고 그것을 인수로 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);
}
:
C++로 :
는 다음을 고려
def pyentry(baseref):
baseref.func() # here I want Derived::func() to be called
은 내가 잘못 여기서 뭐하는 거지?
언제나 비 가상 포워딩 기능을 넣을 수 있습니다 :'void Base :: doFunc() {this-> func(); }','.def ("func", & Base :: doFunc);' –
나는이 오버 헤드를 피하기를 바랐다 ... 그게 boost :: python이 전부라고 생각하지 않습니까? 오버 헤드를 피하는 ...? – shoosh
기본을 마무리해야합니다. - http://www.boost.org/doc/libs/1_49_0/libs/python/doc/v2/wrapper.html – babak