0

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

主要的

#include "classa.h"

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

类.h

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

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

#endif // CLASSA_H

类b.h

#ifndef CLASSB_H
#define CLASSB_H

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

#endif // CLASSB_H

类.cpp

#include "classa.h"

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

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

类b.ccp

#include "classb.h"

ClassB::ClassB()
{
}

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

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

UML 图

4

1 回答 1

1

我的 c++ 有点生锈,但我认为是这样的:序列图

var2在创建时自动分配a- 所以在之前创建var1。就 UML 而言,它仍然是创建一个新的类实例。可能有一些方法可以进一步对<<create>>操作进行刻板印象,以指示在堆栈与堆上的创建,但不能说我曾经使用过它们。就像我说的,我的 C++ 有点生疏了。

hth。

于 2011-05-17T21:00:26.297 回答