Podstawowe wymagania względem projektów zaliczeniowych
- przynajmniej kilka klas, w tym przynajmniej jedna klasa abstrakcyjna (lub interfejs)
- dziedziczenie
- przeciążenie metod
- konstruktory i destruktory, w tym konstruktor kopiujący
- poprawna hermetyzacja danych
- przeciążenie operatorów, w tym dociążony operator przypisania
- wykorzystanie kolekcji szablonowej (lub nawet utworzenie własnej klasy, metody lub funkcji szablonowej)
- wykorzystanie algorytmów operujących na kolekcjach szablonowych
- operacje na plikach (odczyt, zapis danych)
- logiczna organizacja projektu w osobnych plikach źródłowych i nagłówkowych
- wykorzystanie metod wirtualnych
- właściwe użycie typów
- dbałość o czytelność kodu