有人可以告诉我如何使用以下C ++代码示例绘制序列图中的差异。我试图尽可能清楚:)
#include "classa.h"
int main()
{
ClassA a;
return 0;
}
#ifndef CLASSA_H
#define CLASSA_H
#include "classb.h"
class ClassA
{
public:
ClassA();
~ClassA();
private:
ClassB *var1;
ClassB var2;
};
#endif // CLASSA_H
#ifndef CLASSB_H
#define CLASSB_H
class ClassB
{
public:
ClassB();
void test();
};
#endif // CLASSB_H
#include "classa.h"
ClassA::ClassA()
{
var1 = new ClassB;
var1->test();
var2.test();
}
ClassA::~ClassA()
{
delete var1;
}
#include "classb.h"
ClassB::ClassB()
{
}
void ClassB::test()
{
//Here some code
}
我认为下面的图像用于新的运算符(var1),但是如何绘制var2?
答案 0 :(得分:1)
我的c ++有点生疏,但我想是这样的:
创建var2
时会自动分配 a
- 因此会在var1
之前创建。就UML而言,它仍然是一个新的类实例的创建。可能有一些方法可以进一步构造<<create>>
操作以指示堆栈与堆上的创建,但不能说我曾经使用它们。就像我说的那样,我的C ++有点生疏。
第h。