Диаграмма последовательности Uml: рисование нового оператора по сравнению с конструктором по умолчанию

Может ли кто-нибудь сказать мне, как нарисовать различия в диаграмме последовательности с помощью следующего примера кода C++. Я старался быть максимально ясным :)

главный

#include "classa.h"

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

классa.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

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-диаграмма


person Boedy    schedule 17.05.2011    source источник
comment
Добавил схему от вашего имени по указанной вами ссылке. Надеюсь, ты не против.   -  person Mahesh    schedule 18.05.2011
comment
Спасибо Машеш. Очень признателен   -  person Boedy    schedule 19.05.2011


Ответы (1)


Мой С++ немного заржавел, но я думаю примерно так: sequence chart

var2 выделяется автоматически при создании a, то есть создается до var1. Что касается UML, это по-прежнему создание нового экземпляра класса. Могут быть способы еще больше стереотипировать операцию <<create>>, чтобы указать создание в стеке, а не в куче, но не могу сказать, что я когда-либо их использовал. Как я уже сказал, мой C++ немного заржавел.

чт.

person sfinnie    schedule 17.05.2011