Generic Programming
Templates in C++ hilfen uns generische Programmierung zu implementieren.
Die Swap
Funktion aus dem letzten Turorial ist mächtig genug jede Art von Datentyp zu unterstützen.
Im unteren Code, kann die Swap
Funktion so wie sie ist, benutzt werden, um Integer Zahlen zu vertauschen.
#include <iostream>
using namespace std;
template<typename T>
void Swap(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
int main()
{
string hello = "Welt!", world = "Hallo, ";
Swap(world, hello);
cout << hello << world << endl;
int a = 5, b = 11;
Swap(a, b);
cout << "a:" << a << " b:" << b << endl;
return 0;
}
Templates, Klassen und Operatorüberladung
Übung
Die Swap
Funktion wird auch für Datentypen des Users funktionieren. Um das zu demonstrieren, implementieren wir die C++ Klasse Point
mit den Koordinaten x
und y
. Erstelle 2 Objekte des Typs Point
und tausche sie. Operatorüberladung für den =
Operator muss ebenfalls implementiert werden.