> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Podobne dokumenty
Mechanizm dziedziczenia

Mechanizm dziedziczenia

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Wprowadzenie do programowanie obiektowego w języku C++

Programowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26

Programowanie obiektowe - 1.

Dziedziczenie. Ogólna postać dziedziczenia klas:

Język C++ Programowanie obiektowe

Typy klasowe (klasy) 1. Programowanie obiektowe. 2. Założenia paradygmatu obiektowego:

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np

TEMAT : KLASY DZIEDZICZENIE

Wykład 8: klasy cz. 4

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

Podstawy Programowania Obiektowego

Programowanie Obiektowe i C++

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Technologie i usługi internetowe cz. 2

Dziedziczenie. dr Jarosław Skaruz

Programowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013

.NET Klasy, obiekty. ciąg dalszy

Zaawansowane programowanie w języku C++ Programowanie obiektowe

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Programowanie w Javie 1 Wykład i Ćwiczenia 3 Programowanie obiektowe w Javie cd. Płock, 16 października 2013 r.

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Wprowadzenie do programowanie obiektowego w języku C++

Programowanie obiektowe w języku

Dziedziczenie jednobazowe, poliformizm

Dziedziczenie. Tomasz Borzyszkowski

Materiały do zajęć VII

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Dokumentacja do API Javy.

Aplikacje w środowisku Java

dr inż. Jarosław Forenc

Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 4

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie obiektowe

Kurs WWW. Paweł Rajba.

Programowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14

Podstawy Języka Java

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

Aplikacje w środowisku Java

Zaawansowane programowanie w C++ (PCP)

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Wstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this

Język C++ wykład VII. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VII. dr Jarosław Mederski. Spis.

Wprowadzenie do obiektowości

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Programowanie obiektowe

Język programowania. Andrzej Bobyk

Zaawansowane programowanie w języku C++ Klasy w C++

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

KARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.

Zaliczenie przedmiotu:

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Interfejsy i klasy wewnętrzne

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne

PARADYGMATY PROGRAMOWANIA Wykład 2

Wykład 5: Klasy cz. 3

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Szablony funkcji i klas (templates)

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

Programowanie obiektowe

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

Elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

Wprowadzenie do obiektowości

Programowanie Obiektowe i C++

C++. Æwiczenia zaawansowane

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.

PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec

wykład IV uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C, a C++. wykład IV dr Jarosław Mederski Spis Język C++ - wstęp

Programowanie obiektowe

Operator przypisania. Jest czym innym niż konstruktor kopiujący!

PRZEWODNIK PO PRZEDMIOCIE

Programowanie 2. Język C++. Wykład 9.

Klasy cd. Struktury Interfejsy Wyjątki

Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory.

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12

Szablony klas, zastosowanie szablonów w programach

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie, część I

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

Informacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura

Programowanie obiektowe

Dziedziczenie i interfejsy

Enkapsulacja, dziedziczenie, polimorfizm

Transkrypt:

> C++ dziedziczenie Dane: Iwona Polak iwona.polak@us.edu.pl Uniwersytet Śląski Instytut Informatyki 1432108800

> Dziedziczenie Dziedziczenie C++ dziedziczenie 2 / 13

> Dziedziczenie Dziedziczenie * to technika pozwalająca na definiowanie nowej klasy przy wykorzystaniu klasy już wcześniej istniejącej. * oznacza przejmowanie własności innej klasy i poddanie ich wyspecjalizowaniu. C++ dziedziczenie 2 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. ++ dziedziczenie 3 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. Wyjątkiem są konstruktory i destruktory nie są dziedziczone. ++ dziedziczenie 3 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. Wyjątkiem są konstruktory i destruktory nie są dziedziczone. Klasę, po której się dziedziczy ++ dziedziczenie 3 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. Wyjątkiem są konstruktory i destruktory nie są dziedziczone. Klasę, po której się dziedziczy określa się nadklasą, klasą bazową lub klasą macierzystą. ++ dziedziczenie 3 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. Wyjątkiem są konstruktory i destruktory nie są dziedziczone. Klasę, po której się dziedziczy określa się nadklasą, klasą bazową lub klasą macierzystą. Nowo utworzona klasa ++ dziedziczenie 3 / 13

> Dziedziczenie Technika dziedziczenia umożliwia tworzenie nowych klas na bazie klas już istniejących. Klasa, która dziedziczy po innej klasie, przejmuje jej metody i atrybuty oraz najczęściej dodaje własne, by dostosować ją do konkretnego zadania. Wyjątkiem są konstruktory i destruktory nie są dziedziczone. Klasę, po której się dziedziczy określa się nadklasą, klasą bazową lub klasą macierzystą. Nowo utworzona klasa nazywa się podklasą, klasą pochodną lub klasą potomną. C++ dziedziczenie 3 / 13

> Kawałek kodu C++ dziedziczenie 4 / 13

> Konstruktory i destruktory a hierarchia klas ++ dziedziczenie 5 / 13

* Pobrać ze strony plik Osoba.cpp oraz zapoznać się z jego zawartością. * Następnie odpowiedzieć na następujące pytania: * Jaka jest kolejność aktywacji konstruktorów i destruktorów, gdy obiekt tworzony jest jako Absolwent a;? * Jaka jest kolejność aktywacji konstruktorów i destruktorów, gdy obiekt tworzony jest jako Absolwent a( 10 );? * Usunąć aktywację konstruktorów klas bazowych z listy inicjalizacyjnej konstruktorów klas pochodnych Absolwent i Student oraz sprawdzić, jak sytuacja wygląda po rekompilacji programu. C++ dziedziczenie 6 / 13

> Modyfikatory dostępu dostępne dla wszystkich ++ dziedziczenie 7 / 13

> Modyfikatory dostępu public (publiczne) dostępne dla wszystkich ++ dziedziczenie 7 / 13

> Modyfikatory dostępu public (publiczne) dostępne dla wszystkich dostępne tylko z wnętrza klasy ++ dziedziczenie 7 / 13

> Modyfikatory dostępu public (publiczne) dostępne dla wszystkich private (prywatne) dostępne tylko z wnętrza klasy ++ dziedziczenie 7 / 13

> Modyfikatory dostępu public (publiczne) dostępne dla wszystkich dostępne dla potomków private (prywatne) dostępne tylko z wnętrza klasy ++ dziedziczenie 7 / 13

> Modyfikatory dostępu public (publiczne) dostępne dla wszystkich protected (chronione) dostępne dla potomków private (prywatne) dostępne tylko z wnętrza klasy ++ dziedziczenie 7 / 13

> Dziedziczenie wielobazowe C++ dziedziczenie 8 / 13

> Dziedziczenie wielobazowe C++ dziedziczenie 9 / 13

> Dziedziczenie wielobazowe * Dla obiektu stolik aktywowany jest konstruktor klasy OkraglyStol. * Ponieważ klasa ta dziedziczy po dwóch klasach (Stol, Okrag), na liście inicjalizacyjnej tego konstruktora umieszczone są odwołania do dwóch konstruktorów. * W trakcie przetwarzania listy inicjalizacyjnej następuje aktywowanie obu tych konstruktorów. * Kolejność aktywowania konstruktorów dla obiektu klasy pochodnej wynika z kolejności występowania nazw klas bazowych w deklaracji tej klasy. Nie jest istotna kolejność ich umieszczenia na liście inicjalizacyjnej konstruktora klasy pochodnej. C++ dziedziczenie 10 / 13

> Ćwiczenie hierarchie 1. Napisz program, w którym zdefiniujesz jedną z wymienionych hierarchii:... <LOSOWANIE!> 2. Zadbaj o poprawność schematu dziedziczenia, adekwatne konstruktory (bezparametrowy, parametrowy, kopiujący) i destruktory, odpowiednie zadeklarowanie atrybutów i metod (prywatne, publiczne i chronione) w zależności od poziomu szczegółowości, itd. 3. Enkapsulacja jest ważna metody get i set. 4. Pamiętaj, że umiesz też przeciążać operatory. 5. Niezależnie od wszystkiego prowadź ewidencję, ile obiektów danej klasy aktualnie istnieje. 6. Dodaj cokolwiek jeszcze ciekawego Ci przyjdzie do głowy 7. W main() powołaj do życia kilka obiektów stworzonych klas. Pokaż na ich przykładzie działanie zaimplementowanych funkcjonalności. C++ dziedziczenie 11 / 13

> Co dalej? * dyrektywy preprocesora * funkcje zaprzyjaźnione * metody wirtualne * konwersje * STL (Standard Template Library) * szablony funkcji i klas * wyjątki ++ dziedziczenie 12 / 13

> Co dalej? * Akademickie Mistrzostwa Polski w Programowaniu Zespołowym (październik) * Potyczki Algorytmiczne http://potyczki.mimuw.edu.pl/ (jesień) archiwum zadań: http://main.edu.pl/pl/archive C++ dziedziczenie 12 / 13

C++ dziedziczenie 13 / 13