Back
Close

Meetup Nowoczesny C++

LordLukin
5,902 views

Meetup Nowoczesny C++ - Welcome!

Coders School

Poniżej jest kod napisany w starym C++03. Reprezentuje on prostą hierarchię figur geometrycznych. Klasa bazowa Shape definiuje interfejs z 3 publicznymi metodami: getArea(), getPerimeter() i print(). Po Shape dziedziczy klasa Rectangle reprezentująca prostokąt, a po niej dziedziczy klasa Square reprezentująca kwadrat. Klasy te odpowienio implementują wspomniane metody. W funkcji main() jest użycie figur, które są przechowywane w kolekcji. Twoim zadaniem jest unowocześnienie tego kodu, korzystając z możliwości jakie daje C++11 i C++14.

Jeśli ściągniesz kod lokalnie, to dodatkowo możesz sprawdzać postęp za pomocą dodanych skryptów sprawdzających. Repozytorium do ściągnięcia na GitHubie

Potrzebne programy: make, g++

Użycie:

make

Zadania:

  1. nullptr: Zamień wszystkie NULLe na nullptr
  2. using alias: Zamień typedef na alias using
  3. automatic type deduction: Użyj auto, tam gdzie można go użyć
  4. range based for loop: Użyj pętli for po kolekcji tam, gdzie to możliwe
  5. default: Oznacz konstruktory kopiujÄ…ce jako default.
  6. delete: Usuń metodę getY() z klasy Square. Usuń domyślne konstruktory (te bez parametrów).
  7. final: Oznacz klasÄ™ Square jako final oraz oznacz metodÄ™ getX() w klasie Rectangle jako final
  8. override: Oznacz wszystkie wirtualne metody jako override. Czy zauważasz jakiś problem?

Zadania dodatkowe:

  1. uniform initialization: Użyj jednolitej inicjalizacji do zainicjalizowania kolekcji shapes.
  2. smart pointers: Zamień zwykłe wskażniki na shared_ptr
  3. lambda functions: Zamień funkcję sortByArea() na funkcję lambda

Co dalej?

  1. Porównaj swoje rozwiązania z naszymi na GitHubie
  2. Polub Coders School na Facebooku
  3. Zapisz się na newsletter, aby pobrać dzisiejszą prezentację oraz otrzymywać informacje o przyszłych wydarzeniach i kursach (możesz się wypisać w dowolnej chwili)
  4. Dołącz do Meetupa Kurs programowania C++
  5. Odwiedź stronę Coders School - http://coders.school
  6. Sprawdź swój poziom znajomości C++ wykonując 10-minutowy test
  7. Zapoznaj siÄ™ z naszÄ… ofertÄ… kursu C++
  8. Zgłoś się na darmowe konsultacje z C++
  9. W razie jakichkolwiek pytań napisz mi maila - lukasz(at)coders.school

Hello job!

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io