Zum Hauptinhalt springen

Aufgabe 15

Schwierigkeitsgrad: Schwer
Themen: Kontrollstrukturen Programmausgabe Klassen Zeiger

Erstellen Sie mithilfe von Klassen eine Todo-Liste mit verschiedenen Aufgaben. Zu der Liste soll man Aufgaben mit add(...) hinzufügen und mit remove(...) wieder entfernen können. Jede Aufabe hat eine Textbeschreibung und eine Priorität, nach der diese in der Liste geordnet wird. Nutzen Sie Header-Dateien für die Deklaration und Source-Dateien für die Definition der Klassen.

Implementieren und Testen Sie die folgenden Klassen:

class Task
{
public:
string content;
int priority;
Task* prev;
Task* next;
Task(string content, int priority, Task* prev, Task* next);
~Task();
friend ostream &operator<<(ostream &out, const Task &t);
};

class List
{
public:
Task *first;
Task *last;
List();
~List();
void add(string content, int priority);
void remove(string content);
friend ostream &operator<<(ostream &out, const List &l);
};