Utilizzando UML, come posso rappresentare A<Foo>
nel seguente codice?Come posso rappresentare l'ereditarietà da un parametro di modello in UML?
template< class T >
class A : public T
{
/* ... */
};
class Foo { };
A<Foo> a_foo;
qualcosa di simile (scuse per i poveri arte ASCII ... ea Jon Skeet) è la mia prima risposta, ma ho il sospetto che non è corretto.
________________
| |
| |
| Foo |
| |
|______________|
/:\ /|\
«bind»(Foo) : |
: | .......
__:____|___: T :
| :.....:
| |
| A |
| |
|______________|
Il CRTP non descrive una classe che eredita da una classe modello, in cui l'ereditario passa se stesso come parametro del modello? In questo caso il link di generalizzazione dovrebbe avere la direzione opposta. La dipendenza legata mostrata è corretta IMHO. –
@ g-makulik - sei corretto (come ha sottolineato Luchiane in basso). Ho modificato il titolo. – PaulH
@Luc Touraille - buon titolo. :) – PaulH