解决重载我有一个C++类是这样的:在Boost.Python的
class ConnectionBase
{
public:
ConnectionBase();
template <class T> Publish(const T&);
private:
virtual void OnEvent(const Overload_a&) {}
virtual void OnEvent(const Overload_b&) {}
};
我的模板&重载是在编译时的类型已知的固定集。应用程序代码从ConnectionBase派生并重写OnEvent来处理它所关心的事件。我可以这样做,因为这组类型是已知的。 OnEvent是私有的,因为用户从不调用它,该类创建一个将其称为回调的线程。 C++代码起作用。
我已经把它包装在boost.python中,我可以导入它并从python发布。我想在Python中创建以下等效:
class ConnectionDerived
{
public:
ConnectionDerived();
private:
virtual void OnEvent(const Overload_b&)
{
// application code
}
};
我不在乎(不愿)露出了默认的OnEvent功能,因为他们从来没有从应用程序代码中调用 - 我只是想为C++类提供一个正文。 但是...因为python没有输入,所以我看到内部处理的boost.python示例都在C++端,我对于如何做到这一点有些困惑。我如何覆盖特定的重载?