解決重載我有一個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++端,我對於如何做到這一點有些困惑。我如何覆蓋特定的重載?