#include <iostream>
using namespace std;
template <class X, class Y>
Y big(X a, Y b)
{
if (a > b)
return (a);
else return (b);
}
int main()
{
cout << big(32.8, 9);
}
Hier verwende ich Vorlagen in CPP. Wenn ich also die Funktion big
aufrufe, die Argumente double
und int
Typ umgeht , möchte ich die Rückantwort, die lautet double
. Den Typ hier gibt es 32
statt 32.8
.
Wie erhalte ich meine gewünschte Ausgabe? Wie schreibe ich einen richtigen Rückgabetyp big
?
std::max
es implementiert wird. Der Rückgabetyp einer Funktion muss zur Kompilierungszeit in C ++ bekannt sein. Daher kann dieser Rückgabetyp nicht vom Laufzeitwert Ihrer Parameter abhängen. Aus diesem Grund müssen für eine solche Funktion beide Parameter denselben Typ haben (dh Typ X, aber nicht Y).