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)
- Przeczytaj artykuł Memory : Stack vs Heap
- Przygotuj swoją funkcję sprawdzającą, czy podany ciąg znaków jest palindromem
- Prezentacja C++ Introduction
- C++ Fundamental types
- C++ Fixed width integer types
- More about recursion
- Memory : Stack vs Heap
- Pointers vs References in C++
- C++ keywords
- C++ Classes and Objects
- 13.07.2019 Podstawy C++: wstęp
- 13.07.2019 Podstawy C++: typy
- 13.07.2019 Podstawy C++: rekurencja
- 13.07.2019 Podstawy C++: stos i sterta
- 13.07.2019 Podstawy C++: słowa kluczowe
- 13.07.2019 Podstawy C++: programowanie obiektowe
- 13.07.2019 Podstawy C++: kopie, referencje, wskaźniki
- 13.07.2019 Podstawy C++: zdalne repozytoria
- (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
- (Jednorazowo) Kliknij na przycisk Fork w prawy górnym rogu GitHuba. Spowoduje to utworzenie kopii tego repozytorium na Twoim koncie GitHub.
- (Jednorazowo) Ściągnij swoje sforkowane repozytorium (
git clone https://github.com/USERNAME/kurs_cpp_lato_2019.git
) - 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.
- Przyznaj sobie odpowiednią liczbę punktów w tabeli głównej.
- 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
) - Wyślij swoje zmiany na swoje konto GH (
git push origin master
) - Utwórz Pull Request poprzez GitHuba.
- 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. - 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 :)
- Zapoznaj się ze ściągą o polimorfiźmie
- 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