【发布时间】:2015-01-20 11:22:25
【问题描述】:
在重写类成员函数并围绕基类创建包装器时,谁能帮助我理解 Boost Python 中的调度函数和转发函数的含义?
可以在以下位置找到相同的示例:
Virtual Functions with Default Implementations
以下是无需转发功能即可正常工作的示例:
class Base
{
public:
virtual void xfoo(int i)
{
cout << "XFOO::BASE" << i;
}
Base(){}
Base(const Base&){}
};
class BaseW : public Base, public wrapper<Base>
{
public:
void xfoo(int i)
{
if(override f= this->get_override("xfoo"))
{
f();
}
Base::xfoo(i);
}
};
class BaseImpl : public Base
{
public:
void xfoo(int i)
{
cout << "xFoo:Der " << i;
}
};
BOOST_PYTHON_MODULE(hello)
{
class_<BaseW, boost::noncopyable >("Base")
.def("xfoo",&Base::xfoo)
;
class_<BaseImpl, bases<Base> >("BaseImpl");
}
【问题讨论】:
标签: python c++ boost virtual overriding