Uml序列图:与默认构造函数相比,绘制新运算符

时间:2011-05-17 19:39:29

标签: c++ constructor uml sequence-diagram new-operator

有人可以告诉我如何使用以下C ++代码示例绘制序列图中的差异。我试图尽可能清楚:)

#include "classa.h"

int main()
{
    ClassA a;
    return 0;
}

classa.h

#ifndef CLASSA_H
#define CLASSA_H
#include "classb.h"

class ClassA
{
public:
    ClassA();
    ~ClassA();
private:
    ClassB *var1;
    ClassB var2;
};

#endif // CLASSA_H

classb.h

#ifndef CLASSB_H
#define CLASSB_H

class ClassB
{
public:
    ClassB();
    void test();
};

#endif // CLASSB_H

classa.cpp

#include "classa.h"

ClassA::ClassA()
{
    var1 = new ClassB;
    var1->test();
    var2.test();
}

ClassA::~ClassA()
{
    delete var1;
}

classb.ccp

#include "classb.h"

ClassB::ClassB()
{
}

void ClassB::test()
{
    //Here some code
}

我认为下面的图像用于新的运算符(var1),但是如何绘制var2?

UML Diagram

1 个答案:

答案 0 :(得分:1)

我的c ++有点生疏,但我想是这样的:sequence diagram

创建var2时会自动分配

a - 因此会在var1之前创建。就UML而言,它仍然是一个新的类实例的创建。可能有一些方法可以进一步构造<<create>>操作以指示堆栈与堆上的创建,但不能说我曾经使用它们。就像我说的那样,我的C ++有点生疏。

第h。