使用UML,我如何在以下代码中表示A<Foo>
?如何在UML中表示从模板参数的继承?
template< class T >
class A : public T
{
/* ... */
};
class Foo { };
A<Foo> a_foo;
像这样的东西(道歉的ASCII艺术差...和Jon Skeet)是我的第一个猜测,但我怀疑这是不正确的。
________________
| |
| |
| Foo |
| |
|______________|
/:\ /|\
«bind»(Foo) : |
: | .......
__:____|___: T :
| :.....:
| |
| A |
| |
|______________|
不是CRTP描述了从模板类继承的类,其中继承器将自身作为模板参数传递?在这种情况下,泛化链接应该有相反的方向。显示的绑定依赖关系是正确的。 – 2012-07-12 14:09:59
@ g-makulik - 你是对的(正如Luchiane指出的那样)。我修改了标题。 – PaulH 2012-07-12 14:12:43
@Luc Touraille - 好标题。 :) – PaulH 2012-07-12 21:43:01