Podstawowe wymagania względem projektów zaliczeniowych

  1. przynajmniej kilka klas, w tym przynajmniej jedna klasa abstrakcyjna (lub interfejs)
  2. logiczna organizacja projektu w plikach źródłowych i nagłówkowych
  3. dziedziczenie
  4. przeciążenie metod
  5. wykorzystanie metod wirtualnych
  6. konstruktory i destruktory, w tym konstruktor kopiujący oraz konstruktor domyślny
  7. poprawna hermetyzacja danych, odpowiednie użycie modyfikatorów dostępu (public, private, protected)
  8. przeciążenie operatorów, w tym dociążony operator przypisania
  9. wykorzystanie kolekcji szablonowej (lub nawet utworzenie własnej klasy, metody lub funkcji szablonowej)
  10. wykorzystanie algorytmów operujących na kolekcjach szablonowych
  11. operacje na plikach (odczyt, zapis danych)
  12. właściwe użycie typów danych, w tym typów wskaźnikowych i referencyjnych
  13. obsługa wyjątków, w tym utworzenie własnych klas wyjątków
  14. czytelność kodu, w tym odpowiednie nazewnictwo zmiennych, funkcji i klas, a także formatowanie kodu
  15. wykorzystanie dynamicznego przydziału pamięci (new, delete)