Boost Python を使用して、C++ の一部のクラスに Python インターフェイスを提供しています。解決方法がわからないこの状況を見つけました:
このメンバー関数を持つクラスがあります:
virtual void visit(const ReportClass r) = 0;
virtual void visit(const unsigned int category) = 0;
virtual void visit(const char* type) = 0;
virtual void visit(const char* name, const unsigned int id, const char &value ) = 0;
virtual void visit(const char* name, const unsigned int id, const unsigned short &value ) = 0;
virtual void visit(const char* name, const unsigned int id, const unsigned int &value ) = 0;
virtual void visit(const char* name, const unsigned int id, const MaskedAddr &value ) = 0;
virtual void visit(const char* name, const unsigned int id, const unsigned long long &value ) = 0;
仮想関数とオーバーロードされた関数を処理する方法を見てきましたが、両方を組み合わせる方法がわかりません。
ちなみに、この例では、int を返す仮想関数 (たとえば) は次のように実装する必要があることがわかります。
int f()
{
return this->get_override("f")();
}
私の場合、彼らは何も返さないので、次のように実装する必要があると思います:
void f()
{
this->get_override("f")();
}
これは正しいです?
前もって感謝します