使用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