Repetitio est mater studiorum
Przykład (długi) 1) Zadeklaruj klasę task która reprezentuje zadania do wykonania (np. wpisy w terminarzu), które wewnątrz obiektów klasy reprezentowane są przez kod zadania (dla uproszczenia pojedynczy char) oraz przez datę planowanego wykonania zadania (dla uproszczenia int). Zdefiniuj wszystkie potrzebne w dalszych częściach zadania metody i operatory (patrz kolejne slajdy, klasy: queue oraz sorted_q).
Przykład (cd.) 2) Zadeklaruj klasę queue która reprezentuje kolejki (FIFO) zadań. Zadania w kolejce winny być przechowywane w liście jednokierunkowej (zadeklaruj również typ elementu listy). Zdefiniuj następujące metody i operatory:
Przykład (cd.) 2 cd. queue:: konstruktor domyślny klasy konstruktor kopiujący klasy destruktor operator przypisania metodę empty() która usuwa wszystkie zadania z kolejki metodę contains(const task &t) zwracającą 1 gdy kolejka zawiera zadanie t zaprzyjaźnione operatory strumieniowe wczytujące/zapisujące obiekty klasy queue operator += wstawiający zadanie do kolejki
Przykład (koniec) 3) Zadeklaruj klasę sorted_q, pochodną klasy queue, która reprezentuje kolejki priorytetowe zadań. Wewnątrz kolejki zadania ułożone są w kolejności chronologicznej. Zdefiniuj następujące metody i operatory : operator += wstawiający zadanie do kolejki metodę complete (arg.: const queue & tobedone), która wykonuje te zadania z kolejki, które są (jednocześnie również) zawarte w kolejce tobedone. Jeżeli potrzeba, zdefiniuj również operator przypisania dla klasy sorted_q zaprzyjaźnione operatory strumieniowe wczytujące/zapisujące obiekty klasy