0

次の 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
}

下の画像はnew演算子(var1)に使われていると思いますが、var2はどのように描かれているのでしょうか?

UML ダイアグラム

4

1 に答える 1

1

私のC ++は少し錆びていますが、次のように思います:シーケンス図

var2は作成時に自動的に割り当てられます。aしたがって、 は作成前に作成されvar1ます。UML に関する限り、それは依然として新しいクラス インスタンスの作成です。スタックとヒープでの作成を示すために操作をさらにステレオタイプ化する方法があるかもしれません<<create>>が、それらを使用したことがあるとは言えません。私が言うように、私の C++ は少し錆びています。

h番目。

于 2011-05-17T21:00:26.297 に答える