UML'yi kullanarak, aşağıdaki kodda A<Foo>
'u nasıl temsil edebilirim?UML'de şablon parametresinden mirasımı nasıl temsil edebilirim?
template< class T >
class A : public T
{
/* ... */
};
class Foo { };
A<Foo> a_foo;
Böyle bir şey (kötü ASCII sanat için özür ... ve Jon Skeet kadar) benim ilk tahminim, ama doğru değil şüpheli.
________________
| |
| |
| Foo |
| |
|______________|
/:\ /|\
«bind»(Foo) : |
: | .......
__:____|___: T :
| :.....:
| |
| A |
| |
|______________|
CRTP, mirasçının kendisini şablon parametresi olarak geçirdiği bir şablon sınıfından miras alan bir sınıfı açıklamıyor mu? Bu durumda genelleme linki ters yöne sahip olmalıdır. Gösterilen bağlama bağımlılığı doğru IMHO'dur. –
@ g-makulik - haklısınız (aşağıda Luchiane'nin işaret ettiği gibi). Başlığı değiştirdim. – PaulH
@Luc Touraille - iyi başlık. :) – PaulH