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

If constructor of a class requires pointer object of second object, what would be the UML relationship?

我有两个 classes AB。如果 class A 的构造函数需要指向 class B 的对象的指针,

             `A(B* b)`.

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

编辑

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

我有三个 classes ABC。这里,C继承自B

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

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

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

这样岂不是所有的组合、依赖、泛化关系都如附图所示?

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

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

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

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

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