#include <iostream>
#include <string>
using namespace std;
template <typename Type>
const Type& GetMax(Type& value1,Type& value2)
{
if(value1 > value2)
return value1;
else
return value2;
}
template<typename Type>
void DisplayComparison(const Type& value1,const Type& value2)
{
cout<<"GetMax("<<value1<<","<<value2<<") = ";
cout<<GetMax(value1,value2)<<endl;
}
int main()
{
int Int1 = -102, Int2 = 2001;
DisplayComparison(Int1,Int2);
double d1 = 3.14,d2 = 3.1416;
DisplayComparison(d1,d2);
string Name1("Jack"),Name2("John");
DisplayComparison(Name1,Name2);
return 0;
}
const Type& GetMax
... ist const
notwendig? Wenn ja warum? und wenn ich so schreibe ->const Type& GetMax(const Type& value1,const Type& value)
was die beiden const
tun? :(Warum müssen wir const am Anfang der Funktion GetMax setzen?
All dies und mehr wird in jedem [gutes C++ Buch] erklärt (https://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list) – UnholySheep
Das 'const' ist nicht Qualifizierung der Funktion selbst. Es qualifiziert den Rückgabetyp. Dasselbe gilt für das Potential "const", das Sie für diese Parameter angeben, sie würden den Typ dieser Parameter qualifizieren. Mitgliedsfunktionsqualifizierer kommen am Ende, wie 'void foo() const'. –
Du bist zu verkomplizieren es, nur zurückgeben '' und nicht die Baumuster zur const Type & ' – acraig5075