Diskussion:Generische Programmierung in Java
Erscheinungsbild
Grats an diejenigen, die diesen Artikel verfasst haben. Wirklich gelungen und auf den ersten Blick (wahrscheinlich auch den zweiten usw.) vollständig :) --ChristianHujer 05:25, 14. Mär 2005 (CET)
Weiterhin ist es aufgrund dieser Vorgehensweise bei C++ sehr problematisch, virtuelle Methoden im Zusammenhang mit Templates zu verwenden
- Inwiefern?
(beispielsweise dürfen Methoden einer template-Klasse nicht virtuell sein).
- Bullshit. Aragorn2 20:40, 26. Mär 2005 (CET)
- Worauf der Autor sich vermutlich unbewusst bezog, ist, dass Template-Methoden nicht virtuell sein dürfen. Bsp.:
template<typename A, typename B> class Foo { public: virtual B bar(A someParameter) { /*...*/ } // ok };
- Aber:
class Is_a_Everything { public: template<typename ConvertTo> virtual operator ConvertTo() const = 0; // Fehler: virtuelle Template-Methode };
- Siehe [Stroustrup, The C++ Programming Language, 3rd edition, Addison Wesley 2000, Abschnitt 13.6.2]
- Nachdem Java auch mit der sogenannten Version "5.0" keine generischen Funktionen vorsieht (nur Methoden generischer Klassen), ist das ein Problem, dass in Java schon allein aufgrund der fehlenden Ausdruckskraft der Sprache gar nicht auftreten kann. Constraints sind eine sinnvolle Ergänzung (in C++ kann man sie bisher nur über Template-Metaprogrammierung simulieren), die restlichen Einschränkungen von Java Generics gegenüber C++ basieren aber nicht auf (angeblichen) Schwächen von C++-Templates, sondern Beschränkungen der Sprache "Java", und des dazugehörigen Runtime Supports. Ich werde den falschen und irreführenden Kommentar daher entfernen. Aragorn2 21:13, 26. Mär 2005 (CET)