Casting bei Template-Funktionsaufruf: Was mache ich falsch und was ist in so einem Fall zu beachten?
Hallo, ich habe eine Frage zur C++-Programmierung.
Die Aufgabenstellung ist wie folgt:
3.2 Implementieren Sie ein Funktionstemplate „Add“ welches zwei übergebene Parameter unterschiedlichen Typs addieren kann, solange der +Operator für diese Variablen zur Verfügung steht. Welchen Vorteil bietet das Funktionstemplate gegenüber dem Überladen der Funktionen? Verwenden Sie als Übergabeparameter z.B. diese Parameterpaare. Rückgabewert soll auch ein Typparameter sein. Dieser ist dann allerdings immer beim Aufruf hinter die Funktion zu schreiben.
fVal2 = Add<float>(iVal1, iVal2);
Verifizieren Sie die Funktionsweise anhand verschiedener Datentypen und Konsolenausgaben.
Mein Template sieht so aus:
template <class Z>
Z Add(Z& a, Z& b) {
Z c = a + b;
return c;
};
Wenn ich jetzt in main die Funktion aufrufe:
float fval2 = Add<float>(i1, f2); // mit int i1, und float f2;
bekomme ich die Fehlermeldung:
'Z Add<float>(Z&, &)': cannot convert argument 1 from 'int' to 'Z&'.
Was mache ich falsch und was ist in so einem Fall zu beachten?
Danke im Voraus an alle.
Stan