010
24.09.2003, 11:55 Uhr
RHBaum
|
Fuer das Auseinaderziehen von Templates in .h und .cpp dateien, wurde nen extra Schluesselwort eingefuehrt. (lt. C++ Programmierung / André Willms).
Der definition stellst du das Schluesselwort "export" voran ....
C++: |
export template <class Typ> class MyTemplate { public: MyTemplate(); ~MyTemplate(); private: void test(); }
|
DIe Implementiereungen kannst dann wie gehabt in ner cpp datei vornehmen.
Das zur Theorie ... die Praxis: 1. Der Author weisst darauf hin, das einige compiler export ned untertuetzen ! 2. Trennung von Definition und Implementation ist gegen die Natur von Templates. Ist zwar fuer den Benutzer angenehmer ... verdeckt aber die Besonderheit, das ein Template wirklich nur ne Schablone ist, und erst konkret uebersetzt wird, wenn man es Typisiert, also benutzt !
Also lieber haende Weg !!! Schreibs lieber zusammen, so wie es alle machen. Templates sollten sowieo klein und modular sein (wie jeder code eigentlich), und monolithischer code mit mehreren typisierungen, kann den code schnell aufblaehen ! Wenn dich in dem template code nimmer auskennst, solltes vielleicht dann design noch mal uberdenken :-)
Viele kleine klassen, die keine Templates sind, schreibt man eh auch zusammen mit Implementation in der h. Datei (ohne cpp Datei) ... wenn sie univerell einsetzbar sind. Das erspart dir spaeter extra ne Lib fuer einzubinden .... Hat zwar auch Nachteile (Abhaengigkeiten), aber der Vorteil ohne Lib auszukommen ueberwiegt dann doch :-) Also gewoehn dich mal dran :-)
CIao ... Dieser Post wurde am 24.09.2003 um 11:59 Uhr von RHBaum editiert. |