[英]override a C++ virtual function within Python with Boost.python?
[英]Boost.Python: Calling virtual functions from C++
我不是在尋求將虛函數公開給Python的幫助,我想知道如何從C ++方面調用所述虛函數。 考慮一下...
// ====================
// C++ code
// --------------------
struct Base
{
virtual void func() {
cout << "Hello from C++!";
}
};
BOOST_PYTHON_MODULE(name)
{
// Expose the class and its virtual function here
}
// ====================
// Python code
// --------------------
from name import Base
class Deriv(Base):
def func():
print('Hello from Python!')
關於如何將Base*
捕獲到派生類型的任何建議,以便在執行base->func()
調用Python函數? Boost文檔僅描述了如何將虛函數公開給Python,而不描述如何從C +調用其重新定義。
我認為您只是調用extract<Base*>(obj)
,其中obj
是python::object
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.