Skip to content

Latest commit

 

History

History
 
 

L02-C++-introduction

Kurs-CPP

Materiały z kursu C++ (Lipiec 2019 - Wrzesień 2019)

13.07.2019 Podstawy C++ (podstawowe typy, funkcje, rekurencja, stos, sterta, wskaźniki, referencje, OOP, klasy, konstruktory, destruktory, operatory)

Poprzedni Pre-work

  • Przeczytaj artykuł Memory : Stack vs Heap
  • Przygotuj swoją funkcję sprawdzającą, czy podany ciąg znaków jest palindromem

Materiały

Nagrania i foto

Post-work

  • (2 punkty) Spróbuj zamienić std::size_t na float w funkcji palindrom. Wynik zapisz jako komentarz wewnątrz pliku.
  • (2 punkty) Zrób optymalizację, żeby pozbyć się kopiowania stringów w rekurencyjnej funkcji palindrom.
    Podpowiedź

    Zapoznaj się z std::string_view

  • (1 punkt) Zapoznaj się ze wszystkimi slowami kluczowymi z rozdziału "Basic" z prezentacji (43 slajd).
  • (3 punkty) Funkcja toString posiada bug. Spróbuj go znaleźć i naprawić.
    Podpowiedź

    Spróbuj dostać takie wartości "0", "10", "3001"

  • (2 punkty) Zapoznaj się ze słowem kluczowym "default" i użyj go w tym kodzie
  • (3 punktow) Dopisz brakujące operatory takie jak "-=", "-", "+" w tym kodzie
  • (2 punktow) Dopisz własne operatory "<<" oraz ">>" żeby twoją klasę można było użyć razem z std::cout i std::cin w tym kodzie
    Podpowiedź

    Zobacz ten przykład

Jak zaraportować wykonanie pracy domowej?

  1. (Jednorazowo) Kliknij na przycisk Fork w prawy górnym rogu GitHuba. Spowoduje to utworzenie kopii tego repozytorium na Twoim koncie GitHub.
  2. (Jednorazowo) Ściągnij swoje sforkowane repozytorium (git clone https://github.com/USERNAME/kurs_cpp_lato_2019.git)
  3. Zmodyfikuj odpowiednie pliki, aby zawierały Twoje rozwiązanie. Rób commity np. 1 na każde zadanie. Zaznaczaj też na bieżąco checkboxy powyżej przy już zrealizowanych zadaniach.
  4. Przyznaj sobie odpowiednią liczbę punktów w tabeli głównej.
  5. Zanim wyślesz zmiany na swoje konto na GitHubie upewnij się, że posiadasz najnowszą wersję głównego repozytorium (git pull https://github.com/coders-school/kurs_cpp_lato_2019.git)
  6. Wyślij swoje zmiany na swoje konto GH (git push origin master)
  7. Utwórz Pull Request poprzez GitHuba.
  8. Jeśli w międzyczasie coś dodasz lub zmienisz to po wykonaniu git push origin master Pull Request zostanie automatycznie zaktualizowany, nie musisz tworzyć go ponownie.
  9. W przyszłości przed każdorazową zmianą czegokolwiek zawsze zaciągnij najpierw zmiany z głównego repozytorium z konta coders-school (git pull https://github.com/coders-school/kurs_cpp_lato_2019.git). Może to oszczędzić wielu problemów :)

Pre-work

Uwagi

  1. Tak wyglądają sygnatury operatorów arytmetycznych a tak sygnatury operatorów przypisania. Trzeba się trzymać tej konwencji i zwracać uwagę, gdzie jest zwracana referencja (operatory +=, -=), a gdzie kopia (operator+, operator-). Tam gdzie jest zwracana referencja tam modyfikujemy i zwracamy samego siebie (*this). Tam gdzie kopia, to należy utwrzyć nowy obiekt, odpowiednio go zmodyfikować i zwrócić. Inne operatory