如何使用typedef unsigned在UML中编写数据属性

3
这是我的示例代码,我的问题是如何在UML类图中编写uint delay,因为它是typedef unsigned。我应该像这样写吗?- 延迟:int 还是这样?- 延迟:uint
typedef unsigned int uint; 

class MyBreakoutGameType : ...
{
public:

private:
     uint delay;
};

1
那个奇怪的格式是什么意思?你想展示一个UML图吗?提示:你也可以在UML中建模typedef。 - undefined
3个回答

4
您提到的代码的图示应该如下所示:

enter image description here


在UML中,"typedef"这个刻板印象是没有定义的。依赖箭头是多余的。 - undefined
@www.admiraalit.nl 陈词滥调可以根据您的喜好进行定义,例如使用特定语言的配置文件。 - undefined
没错。你的答案应该包括一条备注,即只有在UML被扩展为定义了«typedef»原型的配置文件时,你的图表才有效。你还可以提到使用«profile»和«stereotype»原型来定义UML中的配置文件的方法(例如,请参见UML 2.5规范第257页上的图12.14)。 - undefined
4
有点晚来参加这个派对了,但你不会丢失基础类型的信息吗?尽管名称强烈表明 uint 实际上是一个 unsigned int,但图表并没有揭示这一点。 - undefined

2
UML有一些预定义的原始类型,例如“整数”,但是“int”不是UML中预定义的原始类型。可以使用带有«primitive»关键字的分类器来建模新的原始类型(参见UML 2.5规范第10.2.5节)。为了指定相应的C++数据类型,您可能希望添加一个注释:

enter image description here

然后,您可以将这种原始数据类型用作属性的数据类型,就像这样:

enter image description here

当然,这使得该类依赖于“原始”uint的存在。您可以通过从MyBreakoutGameType到uint绘制虚线箭头来强调此依赖关系,但这是可选的。

2

Enterprise Architect的13.5版本将typedef作为具有«typedef»构造型的类进行导入。然后通过泛化引用原始类型。这样可以避免底层类型信息丢失。

typedefs with stereotype

如果«typedef»模式未定义(且不应添加到已使用的配置文件中),则可以使用普通类,该类具有与原始类型的«import»关系。

typedefs by import

这个答案建议仅使用«import»关系,指定连接器上别名的名称。我不喜欢那个解决方案,因为别名无法被引用。


企业架构师的13.5版本将using类型别名作为带有«alias»元型的类进行导入。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接