003
17.10.2006, 18:31 Uhr
0xdeadbeef
Gott (Operator)
|
Fürs Verständnis der Problematik: Es handelt sich bei einer template nicht um eine Klasse. Was du da schreibst, ist keine Vorlagenklasse, sondern eine Klassenvorlage, die bei Benutzung vom Compiler zu einer Klasse konkretisiert wird. Also: vector ist eine Klassenvorlage, vector<int> ist eine Klasse.
Der Compiler kann das erst konkretisieren, wenn er weiß, welche Parameter er dazu benutzen soll - also in diesem Beispiel dann, wenn
im Sourcecode steht. Da aber von nichts nichts kommt, muss der Compiler zu diesem Zeitpunkt den gesamten Code der Vorlage kennen. Deswegen definiert man templates vollständig im Header. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |