Hallo CB Community.
Mein C++ code läuft nicht. Ich versuche momentan das Thema "Templates" zu verstehen, und habe mir paar Übungsaufgaben ausgedacht. Nun, nach unzähligen Versuchen, Googlen, lesen, Testen gebe ich auf. Ich komme nicht mehr weiter.
Der Code ist ist in 3 Dateien aufgeteilt:
Quelle.cpp
Quelle1.cpp
..und die tempplate_Header.h Datei:
Also, es gibt folgenden Erorr:
Woran liegt das Problem? Was habe ich falsch gemacht, bzw. falsch deklariert?
Ich habe gelesen, dass man alle Templates in der main.cpp packen kann, und es würde keine Probleme geben. Das will ich aber nicht. Es muss so sein wie bei den "Profis" alles schön aufgeteilt wie sich das gehört. Ordnung muss sein.
Könnte mir jemand irgendein Tipp geben um das Problem zu lösen?
Besten Dank im Voraus
Mein C++ code läuft nicht. Ich versuche momentan das Thema "Templates" zu verstehen, und habe mir paar Übungsaufgaben ausgedacht. Nun, nach unzähligen Versuchen, Googlen, lesen, Testen gebe ich auf. Ich komme nicht mehr weiter.
Der Code ist ist in 3 Dateien aufgeteilt:
Quelle.cpp
Code:
#include <iostream>
#include "tempplate_Header.h"
using namespace std;
int main()
{
finden <int> objekt(17, 12);
cout << objekt.bigger();
cout << objekt.smaler();
system("Pause");
}
Quelle1.cpp
Code:
#include <iostream>
#include "tempplate_Header.h"
using namespace std;
template <class G>
finden<G>::finden(G a,G b)
{
G zahl1;
G zahl2;
zahl1 = a;
zahl2 = b;
}
template <class G>
G finden<G>::bigger()
{
return (zahl1 > zahl2 ? zahl1 : zahl2);
}
template <class G>
G finden<G>::smaler()
{
return (zahl1 < zahl2 ? zahl1 : zahl2);
}
..und die tempplate_Header.h Datei:
Code:
#include <iostream>
using namespace std;
template <class G>
class finden
{
public:
finden(G a, G b);
G bigger();
G smaler();
};
Also, es gibt folgenden Erorr:
Fehler 1 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: __thiscall finden<int>::finden<int>(int,int)" (??0?$finden@H@@QAE@HH@Z)" in Funktion "_main"
Fehler 2 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall finden<int>::bigger(void)" (?bigger@?$finden@H@@QAEHXZ)" in Funktion "_main".
Fehler 3 error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: int __thiscall finden<int>::smaler(void)" (?smaler@?$finden@H@@QAEHXZ)" in Funktion "_main".
Fehler 4 error LNK1120: 3 nicht aufgelöste Externe
Woran liegt das Problem? Was habe ich falsch gemacht, bzw. falsch deklariert?
Ich habe gelesen, dass man alle Templates in der main.cpp packen kann, und es würde keine Probleme geben. Das will ich aber nicht. Es muss so sein wie bei den "Profis" alles schön aufgeteilt wie sich das gehört. Ordnung muss sein.
Könnte mir jemand irgendein Tipp geben um das Problem zu lösen?
Besten Dank im Voraus
Zuletzt bearbeitet: