Clone this repo:
  1. 78fb160 refill method added to fix problems with abstraction by Lukasz Ziobron · 4 years, 5 months ago grupa_weekendowa master
  2. 5f175f3 Exception fixed - constructor was not public by Lukasz Ziobron · 4 years, 5 months ago
  3. ef0c725 Cmake added by Lukasz Ziobron · 4 years, 5 months ago
  4. 27493f1 InvalidGear exception added by Lukasz Ziobron · 4 years, 5 months ago
  5. 4a4e89d implementation added by Lukasz Ziobron · 4 years, 5 months ago
  1. Przejrzyj zdefiniowane tam nagłówki. Używając vima napraw błąd kopipasty w ElectricCar.hpp
  2. Zastosuj dziedziczenie i zdefiniuj prawidłową abstrakcję (interfejsy)
  3. Napraw problem diamentowy
  4. Napraw enkapsulację (hermetyzację)
  5. Napisz własne implementacje do zdefiniowanych plików hpp wypisujące nazwę funkcji i przekazane do niej parametry
  6. Napisz CMakeLists.txt do kompilacji
  7. W main.cpp użyj polimorfizmu, aby za pomocą jednego obiektu można było reprezentować każdy samochód
  8. Napisz wyjątek InvalidGear, który będzie rzucany gdy np. ktoś spróbuje zmienić bieg na wsteczny przy jeździe do przodu lub gdy ktoś spróbuje wrzucić 6 bieg, a samochód posiada ich 5. Wybierz odpowiedni wyjątek z biblioteki standardowej jako klasę bazową. Gdzie ten wyjątek powinien być złapany?
  9. Zastanów się w jaki sposób obiekt klasy Engine powinien być trzymany w klasie Car - wartość, referencja, wskaźnik.

Praca domowa:

  1. Popraw interfejsy według własnego uznania, aby były jak najmniej podatne na niewłaście użycie (np. accelerate(-999); )
  2. Dodaj nowe klasy wyjątków, które będą rzucane w innych nietypowych sytuacjach. Spróbuj przewidzieć te nietypowe sytuacje.