我在C ++方面有一个纯虚基类,应该在python方面进行扩展。 例如: C ++方面:
class Base {
public:
virtual void Foo() = 0;
}
class BaseWrapper : public Base, public boost::python::wrapper<Base> {
public:
void Foo() { this->get_override("Foo")(); }
}
BOOST_PYTHON_MODULE(libmy_cpp_pro) {
class_<BaseWrapper, boost::noncopyable>("Base").def("Foo", pure_virtual(&BaseWrapper::Foo));
}
Python方面:
import libmy_cpp_pro.so
class Derived(libmy_cpp_pro.Base):
Foo(self):
print "770"
此外,我在C ++方面获得了一个获得Base *并且需要处理对象的函数 - 它获得了对它的完全所有权。例如:
void Bar(Base* obj) {
objList.push_back(obj)
}
现在,我有一个用于Bar()的python-API,我想以只有C ++方面处理它们的方式传递Derived-instances。
我该怎么做?