Inheritance
This object represents inheritence in the KlassModeler. It is pretty deeply flawed, partly because it's hard to represent inheritence between 2 objects when one of them may or may not be present, and partly because I put the object and the visual representation in one class.
It should be changed, but I've worked around the problems for now and I don't really feel like gutting it and re-writing it.
There are two major forms of inheritance, internal and external. Internal means both parent and child objects are in the model and need to be drawn. External means the parent it outside of the model (ie boost::noncopyable).
public:
virtual ~Inheritance( )
virtual bool IsInternal( )
virtual std::string ConvertToXml( ) const =0
virtual void Unlink( ) =0
virtual std::string GetParentName( ) const =0
void SetDocs( const std::string& D)
const std::string& GetDocs( ) const
protected:
Inheritance( ClassObjectPtr pChild)
ClassObjectPtr GetChild( ) const
static const std::string XML_NAME
static const std::string XML_TYPE
static const std::string XML_DOCS
static const std::string XML_CHILD_NAME
static const std::string XML_PARENT_NAME
private:
ClassObjectWeakPtr m_pChild
a weak pointer to the child. This is weak to avoid circular references.
std::string m_Docs
This is meant to be documentation about why the inheritance was done. It can be edited in the class notebook view.