Tematyka

    • Autor modułu: Paweł Wnuk (pawel.wnuk@pw.edu.pl)

      Programowanie obiektowe to podejście, które zmienia sposób myślenia o kodzie – zamiast koncentrować się na operacjach wykonywanych na danych, skupiamy się na samych danych i operacjach z nimi powiązanych, zamkniętych wewnątrz obiektów. Kluczowymi pojęciami są tutaj klasy i obiekty – klasa pełni rolę szablonu, który definiuje wspólne cechy i zachowania, a obiekt to konkretna instancja tego szablonu. Obiekty mają stan (czyli wartości swoich pól), tożsamość (są odróżnialne od innych) i zachowanie (czyli metody). Takie podejście pozwala modelować rzeczywiste byty i zależności między nimi w bardziej naturalny sposób.

      Wprowadzenie klas pozwala także kontrolować dostęp do danych – przez mechanizmy hermetyzacji można chronić pola przed bezpośrednią modyfikacją z zewnątrz, co zwiększa niezawodność kodu. Programista może wyraźnie oddzielić implementację wewnętrzną od interfejsu użytkownika klasy. Pojawiają się tutaj także techniki, takie jak stosowanie pól i metod statycznychgetterów i setterów, oraz specyficzne reguły dotyczące konstruktorów i destruktorów, które zapewniają poprawne tworzenie i usuwanie obiektów. Zasada RAII (Resource Acquisition Is Initialization) staje się podstawą zarządzania zasobami.

      W kolejnych rozdziałach podręcznika czytelnik zapoznaje się także z dziedziczeniempolimorfizmemprzeciążaniem operatorów oraz bardziej złożonymi relacjami między klasami (jak agregacja czy kompozycja). Całość stanowi solidny fundament do tworzenia rozbudowanych i skalowalnych aplikacji w języku C++. Materiał ten jest kluczowy dla każdego, kto chce przejść z programowania strukturalnego na bardziej nowoczesne i elastyczne podejście, oparte na modelowaniu świata za pomocą obiektów i ich współdziałania.

      Słowa kluczowe:  Klasy, obiekty, hermetyzacja danych, polimorfizm, dziedziczenie, abstrakcja danych, wielodziedziczenie, interfejsy w C++



    • Moduł poświęcony programowaniu obiektowemu w języku C++ wprowadza fundamentalne pojęcia, bez których trudno wyobrazić sobie nowoczesne podejście do projektowania oprogramowania. Kluczowym elementem jest klasa, będąca szablonem obiektu, oraz obiekt, czyli jej konkretny egzemplarz posiadający stan i zachowanie. Dzięki obiektom program staje się zbiorem współpracujących jednostek, z których każda realizuje jasno określoną odpowiedzialność.

      W trakcie modułu omówiono m.in. sposób deklarowania i definiowania klas, znaczenie pól (atrybutów) i metod, zasady ochrony danych (public, private, protected), mechanizmy hermetyzacji, a także zagadnienia takie jak pola statyczne, metody statyczne, przeciążanie operatorów, czy konstrukcja i destrukcja obiektów. Szczególny nacisk położono na dobre praktyki, takie jak stosowanie zasady RAII czy odpowiednie zarządzanie tożsamością i stanem obiektów. Zrozumienie tych koncepcji stanowi solidną podstawę do dalszej nauki bardziej zaawansowanych technik, takich jak dziedziczenie, polimorfizm czy projektowanie wzorców obiektowych.