在UML图中编写自我关联?

时间:2013-10-24 19:56:05

标签: c++ uml

如果我有一个名为Draw的UML类,它就像这样与自己有关联:

http://i.imgur.com/yifQN0p.png

如何在同一个类中为此创建一个getter和setter?这是我的镜头:

#ifndef CDRAWABLE_H
#define CDRAWABLE_H
#include <list>

class CDrawable {
public:
    virtual ~CDrawable();

    void SetParent(CDrawable *mParent);
    CDrawable *GetParent() const;

private:
    //! \brief Default Constructor (Disabled)
    CDrawable();
    //! \brief Copy Constructor (Disabled)
    CDrawable(const CActor &);
    //! \brief Assignment Operator (Disabled)
    CDrawable &operator=(const CDrawable &);

    //! The parent of the drawable
    CDrawable *mParent;

    //! List of children of the drawable
    std::list<CDrawable *> mChildren;

对于我的.cpp:

#include "wx/prec.h"
#include "CDrawable.h"
#include <cmath>

using namespace std;


CDrawable::~CDrawable() 
{
}

void CDrawable::SetParent(CDrawable *mParent)
{
    this->mParent = mParent;
}

CDrawable *CDrawable::GetParent()
{
    return mParent;
}

我在代码中省略了一些函数,使其不那么冗长。

编辑:这是我编译时出现的错误:

CDrawable.cpp:153:12: error: prototype for ‘CDrawable* CDrawable::GetParent()’ does not match any in class ‘CDrawable’
CDrawable.h:25:16: error: candidate is: CDrawable* CDrawable::GetParent() const

1 个答案:

答案 0 :(得分:0)

你的GetParent实现应该不是这样的吗?你的标题不符合标题。

const CDrawable *CDrawable::GetParent() const
{
    return mParent;
}