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

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

Język C++ Różnice między C a C++

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

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

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński

Wykład 8: klasy cz. 4

Lab 9 Podstawy Programowania

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Programowanie obiektowe

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

Nowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza)

Język C++ Programowanie obiektowe

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

Laboratorium 1 - Programowanie proceduralne i obiektowe

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

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

dr inż. Jarosław Forenc

Podstawy Programowania Obiektowego

TEMAT : KLASY DZIEDZICZENIE

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

Definiowanie własnych klas

Materiały do zajęć VII

Języki i paradygmaty programowania

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów

Aplikacje w środowisku Java

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

Dziedziczenie jednobazowe, poliformizm

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

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Programowanie obiektowe

.NET Klasy, obiekty. ciąg dalszy

Zaawansowane programowanie w C++ (PCP)

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:

Technologie i usługi internetowe cz. 2

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 w języku C++ dr inż. Jarosław Forenc

Deklaracja struktury w C++

C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM

Zaliczenie przedmiotu:

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

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

Wykład 9: Polimorfizm i klasy wirtualne

Programowanie obiektowe

Programowanie obiektowe - 1.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Definicje klas i obiektów. Tomasz Borzyszkowski

Rozdział 4 KLASY, OBIEKTY, METODY

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Mechanizm dziedziczenia

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

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

Programowanie, część I

Programowanie w języku C++

Wstęp do Programowania 2

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji

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

Klasy abstrakcyjne i interfejsy

Polimorfizm. dr Jarosław Skaruz

Wykład 1: Wskaźniki i zmienne dynamiczne

1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość

Programowanie Obiektowe i C++

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.

Marcin Luckner Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych

Wykład 4: Klasy i Metody

Podstawy Języka Java

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Enkapsulacja, dziedziczenie, polimorfizm

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

Java: kilka brakujących szczegółów i uniwersalna nadklasa Object

Programowanie obiektowe w języku

DYNAMICZNE PRZYDZIELANIE PAMIECI

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Podstawy programowania w języku C++ Zadania - dziedziczenie i polimorfizm

Aplikacje w środowisku Java

Szablony klas, zastosowanie szablonów w programach

Definiowanie własnych klas

Podstawy programowania skrót z wykładów:

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy

C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy KONSTRUKTORY

Programowanie obiektowe

PARADYGMATY PROGRAMOWANIA Wykład 2

Java Język programowania

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

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

Programowanie w Internecie. Java

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Programowanie, część I

Co to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.

Temat: Dynamiczne przydzielanie i zwalnianie pamięci. Struktura listy operacje wstawiania, wyszukiwania oraz usuwania danych.

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Wskaźniki. Informatyka

Wykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:

Programowanie obiektowe

Programowanie obiektowe. Dr hab. Inż. Marta Gładysiewicz-Kudrawiec Pokój 229 A1 Operatory new delete pliki-odczyt

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

Transkrypt:

Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki

zaprojektowany jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych jest to język pozwalający na programowanie zarówno proceduralne jak i obiektowe C++ posiada bardzo rozbudowaną składnię posiada rzadkie w innych językach obiektowych: dziedziczenie wielobazowe, unie, bezpośrednie zarządzanie wolną pamięcią, operacje arytmetyczne na wskaźnikach 2

Strumienie (iostream): wejściowy: cin (klawiatura) // nie wczytuje spacji! wyjściowy: cout (ekran) Operatory: >> - wejście << - wyjście 3

w C++ pojawiają się nowe operatory new i delete odpowiedniki z C: malloc, calloc, realloc, free dynamicznie przydzielaną pamięć należy zwalniać, gdy wiadomo, że nie będzie już potrzebna jeśli dynamiczne przydzielenie pamięci nie powiedzie się rzucany jest wyjątek 4

5

Operator referencji & &zmienna można czytać jak adres zmiennej a = 13; b = a; c = &a; b a 13 188 189 190 13 189 Operator dereferencji * *zmienna można czytać jako wartość wskazywana przez zmienną/adres d = *c; (d == 13)true; //true c & 6

Aby rozróżniać na co wskazuje wskaźnik wprowadza się zmienne wskaźnikowe. 7

Wyrażenie Można czytać jako *x Wartość wskazywana przez x &x Adres x x.y Pole y obiektu/struktury x x->y Pole y obiektu/struktury wskazywanej przez x (*x).y Pole y obiektu/struktury wskazywanej przez x x[0] Pierwszy obiekt wskazywany przez x x[1] Drugi obiekt wskazywany przez x x[n] (n+1)-wszy obiekt wskazywany przez x 8

class nazwa_klasy { modyfikator_dostępu: składowa1; modyfikator_dostępu: składowa2;... } [nazwy obiektów]; Modyfikatory dostępu: -public widoczne dla wszystkich -protected widoczne dla obiektów tej samej klasy i klas dziedziczących -private widoczne dla obiektów tej samej klasy Klasy można dzielić na deklarację (w pliku *.h) oraz definicję w pliku (*.cpp) W C++ struktury i unie też mogą służyć do definiowania klas

Definicja metody w ciele klasy Konstruktor Definicja metody

Definicja metody w ciele klasy Konstruktor Definicja metody

Działanie modyfikatorów dostępu Wywołania domyślnego konstruktora. Konstruktor domyślny istnieje dopóki programista nie zadeklaruje własnego konstruktora

Desktruktory są miejscem zwalniania dynamicznie przydzielonej pamięci

Słowo kluczowe this Słowo kluczowe this zwraca wskaźnik na obiekt, której funkcja składowa jest właśnie wykonywana Składowe statyczne static Składowe statyczne klasy oznacza się słowem kluczowym static. W ciele klasy znajduje się jednynie deklaracja zmiennej. Definicja powinna odbyć za ciałem klasy!

Mechanizm pozwalający na współdzielenie kodu między klasami Deklaracja: class klasa_dziedzicząca : public klasa_nadrzędna Ponownie trzy modyfikatory dostępu przy dziedziczeniu: public składowe dziedziczone zgodnie z modyfikatorami w klasie nadrzędnej protected składowe public zamieniają się na protected private wszystkie dziedziczone składowe są private

Prostokąt i trójkąt dziedziczą pola szerokość i wysokość i mogą korzystać z nich w metodzie pole Prostokąt i trójkąt odziedziczyły również publiczną metodę ustaw_wartosci

Prostokąt i trójkąt mogą być traktowane jak wielokąty Ale metoda pole, choć nazwana tak samo jest charakterystyczna dla każdej klasy

Jeśli przedefiniujemy klasę CWielokat, by zawierała wirtualną metodę pole() to otrzymujemy polimorfizm, czyli różne zachowanie tej samej funkcji wywołanej dla różnych klas dziedziczących

Klasy abstrakcyjne zawierają niezaimplementowane metody wirtualne Wymusza to implementację tych metod w klasach dziedziczących Nie można tworzyć wystąpień klasy abstrakcyjnej!!

Napisać program, który: z konsoli odczytuję liczbę (długość kolejki przy ladzie) tworzy tablicę (kolejkę przy ladzie) obiektów typu Czlowiek wypełnia kolejkę pracownikami i studentami każe przedstawić się i zamówić/wypić odpowiednią liczbę drinków wynik przedstawienia się i zamówienia wyświetla na konsoli