如何在UML中表示模板参数的继承
How can I represent inheritance from a template parameter in UML?
使用UML,如何在以下代码中表示A< Foo >
?
template< class T >
class A : public T
{
/* ... */
};
class Foo { };
A< Foo > a_foo;
像这样的事情(为糟糕的ascii艺术道歉……并向Jon Skeet道歉)是我的第一个猜测,但我怀疑这是不对的。
________________
| |
| |
| Foo |
| |
|______________|
/: /|
«bind»(Foo) : |
: | .......
__:____|___: T :
| :.....:
| |
| A |
| |
|______________|
有一个由U.M.L.设计师提出的建议,但它还不是标准的一部分。
如果没有任何模板参数,则类型为"a"的对象"a"可能是这样的:
+--------------------+
| a: A |
+--------------------+
| [+] doSomething(); |
+--------------------+
对象"a"是"a"的模板,类型参数为"Foo",可以这样表示:
+-----+
+-----------------| Foo |
| +-----+
| a: A |
+--------------------+
| [+] doSomething(); |
+--------------------+
请注意,在U.M.L.中,当您声明一个类时,它们由矩形表示,而特定对象(如"a")则由带圆角的矩形表示。有些人,&工具,不遵循"圆角"规范。
干杯。
我不太确定这是否是完美的标准,但当我尝试使用Enterprise Architect:对"A"类进行逆向工程时,这就是它的定义
+---------+
+-----| T:class |
| +---------+
| T |
| A |
+----------+
| |
+----------+
只需添加模板参数的名称作为类的父名称。
相关文章:
- 为什么C++构造函数在继承中需要默认参数?
- C++接口继承不同的参数方法
- 如何在继承层次结构中调用具有默认参数的构造函数?
- 模板的继承参数设置
- 使用多参数包可变参数模板继承类
- 使用继承初始化C++中的参数
- 可变参数模板和具有继承的默认值
- C++ 模板元编程:从模板模板参数继承
- 有没有一种干净(更)的方法将 CRTP 与可变参数继承混合在一起?
- 使用 SFINAE 检查模板参数继承
- 从Swift中的通用参数继承的替代方案
- C++中的模板参数继承
- 使用 Boost 确保模板参数继承自某个类
- 模板函数参数继承
- C++:从模板参数继承
- 模板类参数继承
- 从模板参数继承是不好的做法
- 从模板参数继承类
- 使用内部类型作为模板参数继承模板类
- 如何以抽象类作为参数继承和实现纯虚方法