这种关系是聚合,组合还是其他什么?

ben*_*low 6 c++ uml

假设我有以下关系:

class A {
public:
   A(B& _objB);
   B& objB;
};

A::A(B& _objB)
 : objB(_objB) {}
Run Code Online (Sandbox Code Playgroud)

这似乎不符合我对聚合或组合的UML定义的理解.它感觉就像一个组合,但在组合中,拥有对象的生命周期应该绑定到父对象.在这种情况下,在创建A之前和销毁A之后存在objB.A不能没有B,但B可以没有A.这就是标准组合关系的反面.这会使它成为聚合还是其他什么?

小智 1

已经在这里回答了 ,答案是聚合。a 不拥有 B 的使用权。