000
07.08.2021, 21:51 Uhr
CplusplusRalf
|
Hallo Leute,
ich habe ein einfaches Template, welches mir den Maximalwert von 2 Zahlen angibt programmiert und rufe diese in der Main auf. Wenn ich das entsprechende Template vor der Main-programmiere, funtioniert das auch soweit...steht die Funktion die Funktion hingegen in der ausgelagerten CPP inklusive ihres Funktionsprototypen in der Header wird mir jedes mal die Fehlermeldung:
error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""float __cdecl maxvalue<float>(float,float)" (??$maxvalue@M@@YAMMM@Z)" in Funktion "_main". 1>CUsers\Nutzer\source\repos\ConsoleApplication2\Debug\ConsoleApplication2.exe : fatal error LNK1120: 1 nicht aufgelöste Externe
angezeigt. Wenn ich das Template in den Namespace packe erscheint die selbe Fehlermeldung. Womit hängt das zusammen?
code
C++: |
Library.h: template <class T> T maxvalue(T, T);
namespace functions { //template <class T> T maxvalue(T, T); int funktion1(int); }
|
Library.cpp:
C++: |
#include <iostream> #include <string.h> #include "Library.h"
const int konstante = 2; int laufvariable;
template <class T> T maxvalue(T Zahl1, T Zahl2) { if (Zahl1 > Zahl2) return Zahl1; else return Zahl2; }
namespace functions { int funktion1(int multiplikator) { int ergebnis = multiplikator * konstante; return ergebnis; } }
|
ConsoleApplication2.cpp:
C++: |
#include <iostream> #include <string> #include <climits> #include "Library.h"
int main() { float max = maxvalue(3.3f, 4.4f); std::cout << "Der Maximalwert beträgt " << max << std::endl; }
|
Dieser Post wurde am 12.08.2021 um 15:39 Uhr von FloSoft editiert. |