在 UML 中绘制智能指针

Sli*_*ney 5 c++ boost uml shared-ptr

是否有一种公认的方法来描述 UML 类图中由 boost 共享指针持有的对象(即,应该使用像聚合或组合这样的空菱形还是全菱形)?

ste*_*anv 2

我不知道关于如何将智能指针建模为关系的总体共识。

黑色菱形意味着控制生命周期,白色菱形意味着不控制生命周期,因此您可以在本地同意对 unique_ptr 使用黑色菱形,对shared_ptr 使用所有黑色菱形,对weak_ptr 使用白色菱形。

如果您确实想对 smart_ptr 进行建模,我建议向关系添加一个属性类:

0
|  /----------------\
+--+ shared pointer |
|  \----------------/
V
Run Code Online (Sandbox Code Playgroud)