Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ UML类图的表示法_C++_Uml_Class Diagram - Fatal编程技术网

C++ UML类图的表示法

C++ UML类图的表示法,c++,uml,class-diagram,C++,Uml,Class Diagram,我有以下课程: class cManipulator : public cEditor { public: cManipulator( ICanvas *canvas, cCompositeRoot* obj ); ~cManipulator(); private: .... class VisitorSetProp* m_SetVisitor; class VisitorGetProp* m_GetVisitor; } cManipulator::

我有以下课程:

class cManipulator : public cEditor
{
 public:
    cManipulator( ICanvas *canvas, cCompositeRoot* obj );
    ~cManipulator();
 private:
    ....
    class VisitorSetProp* m_SetVisitor;
    class VisitorGetProp* m_GetVisitor;
}

cManipulator::cManipulator( ICanvas* canvas, cCompositeRoot* obj ) :
...
{
...
    m_SetVisitor = new VisitorSetProp (this);
    m_GetVisitor = new VisitorGetProp (this);
}

cManipulator::~cManipulator()
{
    delete m_SetVisitor;
    delete m_GetVisitor;
}

class VisitorSetProp : public Visitor
{
public:
......
}

class VisitorGetProp : public Visitor
{
public:
....
}
UML类图上的变体是什么


第一个是正确的
Visitor
是由
VisitorSetprop
VisitorSetprop
实现的抽象类
VisitorSetprop
VisitorGetprop
也通过组合与
cManipulator
相关。
所有这些关系都适当地显示在第一张图中。

第一张图是正确的
Visitor
是由
VisitorSetprop
VisitorSetprop
实现的抽象类
VisitorSetprop
VisitorGetprop
也通过组合与
cManipulator
相关。
所有这些关系都适当地显示在第一个图表中。

在本例中,我认为第一个是适当的符号,原因有两个:

  • 消息向一个方向移动(单向)。换句话说,cManipulator是唯一知道关系的人,任何函数调用都是从cManipulator类转到另一个类
  • 删除此类的实例时,它必须删除该类的这两个实例(另一个类可能没有访问这些类的权限)。即使您没有正确地解构它们,也应该没有其他类具有这些指针

  • 请参见此处:

    在本例中,我认为第一种表示法是合适的,原因有二:

  • 消息向一个方向移动(单向)。换句话说,cManipulator是唯一知道关系的人,任何函数调用都是从cManipulator类转到另一个类
  • 删除此类的实例时,它必须删除该类的这两个实例(另一个类可能没有访问这些类的权限)。即使您没有正确地解构它们,也应该没有其他类具有这些指针

  • 请参见此处:

    第一个是正确的(命名组合),因为
    cManipulator
    m_SetVisitor
    m_GetVisitor
    负有终身责任

    第二个是聚合。当一个以上的对象指向访问者,并且访问者在一生中不承担任何责任时,就可以使用它


    关于第一个是正确的(命名组合),因为
    cManipulator
    m_SetVisitor
    m_GetVisitor
    负有终身责任

    第二个是聚合。当一个以上的对象指向访问者,并且访问者在一生中不承担任何责任时,就可以使用它


    关于

    正确的是您的源代码。没有这样一个正确或错误的模型…所有的模型都是错误的。 但其中一些对解决当前的问题很有用

    The model is Wrong if it does not help you to solve or make easy any of your problems.
    

    注意:实际上源代码也不是正确的模型:-)

    正确的是您的源代码。没有这样一个正确或错误的模型…所有的模型都是错误的。 但其中一些对解决当前的问题很有用

    The model is Wrong if it does not help you to solve or make easy any of your problems.
    
    注意:实际上源代码也不是正确的模型:-)

    编辑以澄清标题。与OP之前的问题不同,标题相同。编辑以澄清标题。与OP之前的问题标题不同。