I have a C++ class which is declared with pure virtual methods, but if I derive from this class in python and implement the pure virtual methods, I get an exception: TypeError: pyvoip.opal.OpalPCSSEndPoint cannot be instantiated or sub-classed
My python class is declared as following: class PCSSEndPoint(OpalPCSSEndPoint): def __init__(self): super(OpalPCSSEndPoint, self).__init__() def OnShowIncoming(self, connection): return True def OnShowOutgoing(self, connection): return True def GetMediaFormats(self): return [] SIP definitions: class OpalPCSSEndPoint : OpalLocalEndPoint /Abstract/ { /**Call back to indicate that remote is ringing. If false is returned the call is aborted. The default implementation is pure. */ virtual PBoolean OnShowIncoming( const OpalPCSSConnection & connection /NoCopy/ ///< Connection having event ) = 0; /**Call back to indicate that remote is ringing. If false is returned the call is aborted. The default implementation is pure. */ virtual PBoolean OnShowOutgoing( const OpalPCSSConnection & connection /NoCopy/ ///< Connection having event ) = 0; }; Now the base class of OpalPCSSEndPoint is also an ABC, as it derives from an ABC but does not re-define the pure virtual function: class OpalLocalEndPoint : OpalEndPoint /Abstract/ { ... }; class OpalEndPoint /Abstract/ { virtual OpalMediaFormatList GetMediaFormats() const = 0; }; I tried removing /Abstract/ from OpalLocalEndPoint, but it made no difference. Any idea what's wrong in this scenario? The only way this works, is if I subclass OpalPCSSEndPoint in C++ and then in Python create a class derived from my OpalPCSSEndPoint subclass.
_______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt