Programmieren mit Templates...

Michael Grosseck hawk at istar.informatik.fh-schmalkalden.de
Mon Jun 21 12:36:47 CEST 1999


Hallo Lutz,


Lutz Donnerhacke wrote:
> 
> * Michael Grosseck wrote:
> >funktioniert das auch. Nun möchte ich aber eine Templatefunktion daraus
> >machen.
> >z.B. template <class T> void Swap(T a, T b)


Vielleicht haben wir uns da ein wenig missverstanden. Klar geht das so
wie Du es unten beschrieben hast, aber das habe ich ja schon in meiner
Mail festgestellt. Worum es mir ging, ist wie ich eine Templatefunktion
auslagern kann, und ob das ueberhaupt funktioniert. Nehmen wir mal zur
Erklaerung meines Problems Dein kleines Programm:

_______________________________________ 
> #include <iostream>
> 
> template <class T>
> void Swap(T & a, T & b) {
>   T t;
>   t = a;
>   a = b;
>   b = t;
> }
>

______________________________________________

Dieser obere Teil soll in eimem File namens modul.cpp stehen, dazu gibt
es noch eine Headerdatei modul.h
__________________________________________


include "modul.h"
> int main(void) {
>   int a(4),b(7);
> 
>   cout << "a=" << a << endl
>        << "b=" << b << endl;
>   Swap(a,b);
>   cout << "a=" << a << endl
>        << "b=" << b << endl;
> 
>   return(0);
> }
___________________________________________________

So und dieser Teil steht in einer anderen Datei. Nennen wir sie
testmodul.cpp

Ich habe beide Files in das Projekt mit eingebunden. Trotzdem bekomme
ich eine Fehlermeldung: undefined reference to Swap<int>(int &,int &)
Ist es ueberhaupt moeglich Templatefunktionen auszulagern, denn wenn ich
fuer include"modul.h" include"modul.cpp" schreibe, funktioniert das
ganze.
So bis denne Michael
-- 
  _    _  _  _  _   _  _  _  | hawk at dive-informatik.fh-schmalkalden.de
 | |_ | || \| || |_| |\ \/ / | 
 |___||_||_|\_|\_ _ _//_/\_\ | I want to go to Linux toyday !  ;-)
                             |