1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Probleme beim Linken

  • Leocor
  • 27. Mai 2008 um 12:26
  • Unerledigt
  • Leocor
    4
    Leocor
    Mitglied
    Punkte
    165
    Beiträge
    23
    • 27. Mai 2008 um 12:26
    • #1

    Ich weis das ist wahrscheinlich der ur leichte fehler! aber ich finde ihn trotzdem nicht!!

    Also: ich hab ein Template FGraph und möchte diese Template-Class einmal verwenden:
    main.cpp:

    C
    #include <iostream>
    
    
    #include "FGraph.h"
    #include "Human.h"
    
    
    using namespace std;
    
    
    int main(int argc, char *argv[]){
    	Human mike("Mike","-");
    
    	FGraph<Human> sBaum;
    	sBaum.Root = mike;
    
    	cout << sBaum.toString();
    }
    Alles anzeigen

    FGraph.h:

    Code
    template<class T> class FGraph{
    ...
    	FGraph();
    	FGraph(T root);
    	virtual ~FGraph();
    ...
    }

    FGraph.cpp:

    Code
    template<class T> FGraph<T>::FGraph(){
    	Root = T();
    
    	addDirectDescendant( T() , T());	
    }
    
    
    template<class T> FGraph<T>::FGraph(T root){
    	Root = root;
    	addDirectDescendant( Root , T());
    }
    
    
    template<class T> FGraph<T>::~FGraph(){
    	for(int i = 0; i < m_descendant.size(); i++){
    		delete 	m_descendant.at(i);
    	}
    }
    Alles anzeigen

    Und mein Compiler spuckt nur aus:

    Code
    #> make
    g++ -ansi -pedantic-errors -g -Wall -c main.cpp
    g++ -ansi -pedantic-errors -g -Wall -c FGraph.cpp
    g++ -o myFGraph -g main.o FGraph.o Human.o
    main.o: In function `main':
    /home/strenkwalder/.eclipse/FGraph/main.cpp:12: undefined reference to `FGraph<Human>::FGraph()'
    /home/strenkwalder/.eclipse/FGraph/main.cpp:15: undefined reference to `FGraph<Human>::toString()'
    /home/strenkwalder/.eclipse/FGraph/main.cpp:15: undefined reference to `FGraph<Human>::~FGraph()'
    /home/strenkwalder/.eclipse/FGraph/main.cpp:15: undefined reference to `FGraph<Human>::~FGraph()'
    collect2: ld returned 1 exit status
    make: *** [FGraph] Fehler 1
    Alles anzeigen

    und jetzt meine frage: Wo ist das problem ich habs mit include richtig eingebunden und sonst mault der compiler auch nicht!!:confused:
    es hat sicher was mit dem template aufruf zu tun!!! weil wenn ich die zu einem nicht template class mach dann gehts ohne fehler

    http://de.youtube.com/watch?v=H9B4a2KEoGY&feature=related
    http://de.youtube.com/watch?v=HhHsXAVHyaA&feature=related

    2 Mal editiert, zuletzt von Leocor (27. Mai 2008 um 13:02)

  • Ringding
    11
    Ringding
    Mitglied
    Reaktionen
    12
    Punkte
    1.237
    Beiträge
    244
    • 27. Mai 2008 um 13:01
    • #2

    Du musst alle template-Methoden ins Headerfile reinschreiben.

    Also alles aus FGraph.cpp -> FGraph.h. Das FGraph.cpp ist dann leer, und du brauchst es nicht mehr :winking_face:

  • Leocor
    4
    Leocor
    Mitglied
    Punkte
    165
    Beiträge
    23
    • 27. Mai 2008 um 13:05
    • #3

    ohhh mann ich hass manchmal den compiler :grinning_squinting_face:

    1000x Dank ... auf die idee wär ich nie gekommen :grinning_squinting_face:

    http://de.youtube.com/watch?v=H9B4a2KEoGY&feature=related
    http://de.youtube.com/watch?v=HhHsXAVHyaA&feature=related

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung