如果类的构造函数需要第二个对象的指针对象,那么UML关系是什么?

时间:2016-08-01 22:56:37

标签: c++ class pointers uml

我有两个班级AB。如果class A的构造函数需要指向class B

对象的指针
             `A(B* b)`.

在这种情况下,A类和B类之间的UML关系是什么?

修改

更详细地说,我有以下情况:

我有三个课程ABC。此处,C继承自B

class A构造函数代码如下:A(B* b)

class C在其构造函数中使用代码实例化指向A对象的指针: A* a = new A(this)

class C的析构函数使用代码pointer a销毁delete a

这是否具有如附图所示的所有构成,依赖和泛化关系?

enter image description here

2 个答案:

答案 0 :(得分:3)

当然,如果必须在构造时提供指向B的指针,则没有讨论依赖关系,如πάντα ῥεῖ指出的那样。

但是,类中的指针是实现类之间可导航关联的一种方法。因此,如果指针由A保持(例如作为成员),那么它将不仅仅是一个简单的依赖;它将是类之间的关联(A和B之间的简单线):

  • 如果指针可以是nullptr,则它是具有多重性0..1的可选关联,否则它将是强制关联1
  • 如果指针被添加到也可以添加其他指针的容器成员,那么它将是一对多关联(多重性0..n或1..n取决于nullptr在施工时是否允许)
  • 由于指针允许您从A导航到B(但不一定从B导航到A),您可以将此关联显示为可导航的箭头:

    enter image description here

答案 1 :(得分:2)

直接关系是依赖(由虚线定向连接线表示):

enter image description here

你可以用更具体的刻板印象来装饰,例如: «使用»:

enter image description here