1. Aufgabe:
Bitte sehen Sie sich das folgende Funktions-Template an. Es soll zwei Werte vom selben Typ addieren und das Ergebnis zurückliefern.
template <typename T> int addieren(T wert1, T wert2)
{
return (wert1 + wert2);
}
Wo könnten Probleme mit dem Template auftreten? Wie können Sie diese Probleme vermeiden?
2. Aufgabe:
Lässt sich das Funktions-Template aus der Aufgabe 1 mit der folgenden Anweisung aufrufen?
addieren<int, int>(20, 10);
Begründen Sie bitte Ihre Antwort.
3. Aufgabe:
Erstellen Sie ein Funktions-Template als Konsolenprogramm, das zwei Werte addiert und das Ergebnis zurückliefert.
Programmieren Sie das Template so, dass es grundsätzlich auch mit string-Typen aufgerufen werden kann. Dann soll allerdings zusätzlich eine Meldung erscheinen, dass beim Addieren von Zeichenketten die Werte aneinandergehängt werden. Diese Meldung soll im Template erzeugt werden.
4. Aufgabe:
Erstellen Sie ein Programm mit grafischer Oberfläche, das eine beliebig lange Liste mit ganzen Zahlen in ein Listenfeld einliest, die Liste sortiert und alle Duplikate entfernt. Die geänderte Liste soll dann in einem zweiten Listenfeld anzeigt werden. Das Einlesen der Zahlen muss dabei nicht unbedingt per Hand durch den Anwender erfolgen. Sie können die Liste auch automatisch mit zufälligen Zahlen füllen lassen.
Es gibt mehrere Ansätze für die Lösung dieser Aufgabe. Welchen Ansatz Sie wählen, ist Ihnen freigestellt. Sie sollten aber in jedem Fall Container-Klassen nutzen. Bitte beschreiben Sie Ihren Ansatz kurz.
Ein Tipp zur Lösung:
Es gibt eine Container-Klasse von Qt, die keine doppelten Einträge zulässt. Sie können eine Liste vom Typ QList in diese Container-Klasse umwandeln. Entsprechende Methoden finden Sie in der Qt-Dokumentation.
Sie können aber auch über einen Iterator selbst nach doppelten Einträgen suchen und diese Einträge mit der Methode remove() entfernen.
Beschreiben Sie für diese Aufgabe zusätzlich, welche grundsätzlichen Schritte für die Lösung erforderlich sind. Schicken Sie auch das vollständige Projekt mit allen Unterordnern und Dateien ein. Um Übertragungszeit und -kosten zu sparen, können Sie das Projekt mit einem geeigneten Programm packen – zum Beispiel mit WinZip oder direkt über das Betriebssystem.