UML中的复杂typedef

时间:2019-12-20 10:30:32

标签: c++ uml typedef

我想知道我如何像UML中的以下那样表示复杂的typedef:

class Foo {
protected:
   typedef std::pair<uint64_t, Bar> BarPair;
   typedef std::set<BarPair> BarPairSet;

   std::map<uint32_t, BarPairSet> m_indexedBarPairSet
};

Bar不属于Foo的一部分。

2 个答案:

答案 0 :(得分:1)

对于结构,可以使用<<dataType>>(请参阅UML 2.5的165页)。 (部分)您的代码如下所示:

enter image description here

答案 1 :(得分:1)

没有直接的方法来表示您的 typedefs ,当然,可能有例如依赖于模板类 pair的类 BarPair ,但是没有支持绑定的标准方法。

如果不是 typedef std :: pair BarPair 而是 BarPair:public std :: pair {} ,我们有

enter image description here

那么,将具有原型 typedef 的UML扩展为具有这样的内容:

enter image description here

或使用 typedef-bind 对实现进行原型化,并对 BarPair BarPairSet 使用原型 typedef

enter image description here