Programowanie obiektowe w C++ Wykªad 4

Save this PDF as:
 WORD  PNG  TXT  JPG

Wielkość: px
Rozpocząć pokaz od strony:

Download "Programowanie obiektowe w C++ Wykªad 4"

Transkrypt

1 Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26

2 Dziedziczenie - podstawy Denicja klasy dziedzicz cej w sposób publiczny po innej klasie: class Pochodna : public Bazowa { // tre± klasy Klasa pochodna dziedziczy po klasie bazowej jej pola i funkcje skªadowe. Klasa pochodna oprócz wªasnych skªadowych b dzie zatem posiadaªa równie» skªadowe z klasy Bazowa. L. St pie«(ajd) Programowanie obiektowe w C++ 2 / 26

3 Przykªad 1 class Samochod{ Samochod(); void Info() const; bool osobowy; class Fiat : public Samochod{ Fiat(); class Star : public Samochod{ Star(); L. St pie«(ajd) Programowanie obiektowe w C++ 3 / 26

4 Przykªad 1 cd. Samochod::Samochod(){ void Samochod::Info() const { if osobowy cout << "Samochod sobowy" << endl; else cout << "Samochod ciezarowy" << endl; Fiat:: Fiat(){ osobowy = true; Star:: Star(){ osobowy = false; L. St pie«(ajd) Programowanie obiektowe w C++ 4 / 26

5 Przykªad 1 cd. int main(){ Fiat a1; cout << "Samochod: "; a1.info(); Star a2; cout << "Samochod: "; a2.info(); // Naruszenie hermetyzacji a2.osobowy = true; return 0; L. St pie«(ajd) Programowanie obiektowe w C++ 5 / 26

6 Skªadowe prywatne i chronione w klasie bazowej Specykatora private u»ywamy, gdy chcemy uchroni skªadowe zarówno przed dost pem z zewn trz, jak i przed dost pem w klasach pochodnych. Specykatora protected u»ywamy, gdy chcemy uchroni skªadowe przed dost pem z zewn trz, ale jednocze±nie mie je do dyspozycji w klasach pochodnych. L. St pie«(ajd) Programowanie obiektowe w C++ 6 / 26

7 Rodzaje dziedziczenia W dziedziczeniu publicznym skªadowe publiczne klasy bazowej s dziedziczone jako publiczne, a skªadowe chronione jako chronione. W dziedziczeniu chronionym skªadowe publiczne oraz chronione s dziedziczone jako chronione. W dziedziczeniu prywatnym skªadowe publiczne oraz chronione s dziedziczone jako prywatne. Gdy nie jest podany typ dziedziczenia, to domy±lne jest dziedziczenie prywatne. Skªadowe prywatne s zawsze dziedziczone jako prywatne. L. St pie«(ajd) Programowanie obiektowe w C++ 7 / 26

8 Dziedziczenie a konstruktory Podczas tworzenia obiektu klasy pochodnej wywoªywany jest konstruktor domy±lny klasy bazowej, o ile taki konstruktor istnieje. Je»eli w klasie bazowej nie istnieje konstruktor domy±lny, nale»y jawnie wywoªa jeden z pozostaªych konstruktorów. Jawne wywolanie konstruktora klasy bazowej: Pochodna::Pochodna(argumenty) : Bazowa(argumenty) { // tre± konstruktora L. St pie«(ajd) Programowanie obiektowe w C++ 8 / 26

9 Przykªad 2 class Samochod{ Samochod(bool); void Info() const; protected: bool osobowy; class Fiat : public Samochod{ Fiat(); void Info() const; class Star : public Samochod{ Star(); void Info() const; L. St pie«(ajd) Programowanie obiektowe w C++ 9 / 26

10 Przykªad 2 cd. Samochod::Samochod(bool osobowy) : osobowy(osobowy){ void Samochod::Info() const { if osobowy cout << "Samochod sobowy" << endl; else cout << "Samochod ciezarowy" << endl; Fiat:: Fiat() : Samochod(true){ void Fiat::Info() const { Samochod::Info(); cout << "Fiat" << endl; Star:: Star() : Samochod(false){ void Star::Info() const { Samochod::Info(); cout << "Star" << endl; L. St pie«(ajd) Programowanie obiektowe w C++ 10 / 26

11 Przykªad 2 cd. int main(){ Fiat a1; cout << "Samochod: "; a1.info(); a1.samochod::info(); Star a2; cout << "Samochod: "; a2.info(); a2.samochod::info(); return 0; L. St pie«(ajd) Programowanie obiektowe w C++ 11 / 26

12 UWAGI W pierwszej kolejno±ci tworzony jest obiekt klasy bazowej. Konstruktor klasy pochodnej powinien przekazywa dane klasy bazowej do jej konstruktora za pomoc listy inicjalizacyjnej. Konstruktor klasy pochodnej powinien inicjalizowa wszystkie dane skªadowe, które zostaªy dodane do tej klasy. Kiedy obiekt klasy pochodnej jest usuwany, najpierw wywoªywany jest destruktor klasy pochodnej, a nast pnie destruktor klasy bazowej. Mo»na deklarowa referencje oraz wska¹niki do obiektów klasy bazowej i przypisywa im zarówno obiekty klasy bazowej, jak i pochodnej. Ale nie na odwrót! L. St pie«(ajd) Programowanie obiektowe w C++ 12 / 26

13 Przesªanianie pól i metod Gdy w klasie pochodnej znajduje si metoda f o takiej samej nazwie i argumentach jak metoda znajduj ca si w klasie bazowej, to mamy do czynienia ze zjawiskiem nadpisania metody. Aby wywoªa w klasie pochodnej nadpisan metod f z klasy bazowej nale»y u»y konstrukcji: Bazowa :: f (argumenty). Gdy w klasie pochodnej znajduje si pole p o takiej samej nazwie jak pole znajduj ce si w klasie bazowej, to mamy do czynienia ze zjawiskiem przesªoni tego pola. Aby w klasie pochodnej odwoªa si do przesªoni tego pola p z klasy bazowej nale»y u»y konstrukcji: Bazowa :: p. L. St pie«(ajd) Programowanie obiektowe w C++ 13 / 26

14 Przykªad 3 Niech A b dzie klas bazow, B jest klas dziedzicz c publicznie po A, f () jest niestatyczn metod z klasy A oraz f () jest nadpisana w klasie B. Zaªó»my,»e dane s deklaracje: B b; A& r = b; A* p = &b; Która z metod f () (z klasy bazowej czy pochodnej) zostanie wywoªana? b.f(); r.f(); p->f(); L. St pie«(ajd) Programowanie obiektowe w C++ 14 / 26

15 Metody wirtualne Aby metoda klasy staªa si wirtualna, nale»y jej nagªówek w deklaracji klasy poprzedzi sªowem kluczowym virtual. Metody wirtualne stosujemy wtedy, kiedy wiemy,»e w klasie pochodnej b dziemy powtórnie j deniowa. Wirtualno± pozwala wybra wersj metody na podstawie typu obiektu zamiast na podstawie typu referencji lub wska¹nika. Deklaracja metody w klasie bazowej za pomoc sªowa kluczowego virtual powoduje,»e funkcja ta jest wirtualna zarówno w klasie bazowej, jak i we wszystkich klasach od niej pochodnych (ª cznie z klasami pochodnymi klas pochodnych). L. St pie«(ajd) Programowanie obiektowe w C++ 15 / 26

16 Przykªad 3 class Samochod{ Samochod(bool); virtual void Info() const; protected: bool osobowy; class Fiat : public Samochod{ Fiat(); virtual void Info() const; class Star : public Samochod{ Star(); virtual void Info() const; L. St pie«(ajd) Programowanie obiektowe w C++ 16 / 26

17 Przykªad 3 cd. Samochod::Samochod(bool osobowy) : osobowy(osobowy){ void Samochod::Info() const { if osobowy cout << "Samochod sobowy" << endl; else cout << "Samochod ciezarowy" << endl; Fiat:: Fiat() : Samochod(true){ void Fiat::Info() const { Samochod::Info(); cout << "Fiat" << endl; Star:: Star() : Samochod(false){ void Star::Info() const { Samochod::Info(); cout << "Star" << endl; L. St pie«(ajd) Programowanie obiektowe w C++ 17 / 26

18 Przykªad 3 cd. int main(){ Samochod *ps = new Fiat; cout << "Samochod: "; ps->info(); Star a2; Samochod &rs = a2; cout << "Samochod: "; rs.info(); return 0; L. St pie«(ajd) Programowanie obiektowe w C++ 18 / 26

19 Metody wirtualne Konstruktory nie mog by wirtualne. Tworzenie obiektu klasy pochodnej wymaga wywoªania konstruktora klasy pochodnej, a nie bazowej. Konstruktor klasy pochodnej u»ywa konstruktora klasy bazowej, a nie dziedziczy go. Nie ma wi c powodu, aby tworzy konstruktory wirtualne. Je±li klasa ma by wykorzystywana jako bazowa, to destruktory powinny by wirtualne. A *pa = new B;... delete pa; // poprawnie; A to klasa bazowa B // ~A() czy ~B()? Powinno si udost pnia w klasie bazowej destruktor wirtualny, nawet wtedy kiedy klasa ta nie potrzebuje destruktora. L. St pie«(ajd) Programowanie obiektowe w C++ 19 / 26

20 UWAGI Funkcje zaprzyja¹nione nie mog by wirtualne, poniewa» nie s skªadowymi klasy, a tylko funkcje skªadowe mog by wirtualne. Mo»na u»y metod wirtualnych wewnatrz funkcji zaprzyja¹nionych i w ten sposób obej± powy»sze ograniczenie. Je±li w klasie pochodnej nie ma nowej denicji funkcji, wtedy klasa u»ywa wersji tej funkcji z klasy bazowej. Je»eli klasa jest ogniwem dªugiego ªa«cucha dziedziczenia, wtedy u»ywa wersji tej funkcji zdeniowanej najbli»ej. L. St pie«(ajd) Programowanie obiektowe w C++ 20 / 26

21 Ukrywanie metod w wyniku powtórnej denicji class A{ virtual void show(int) const;... class B : public A{ virtual void show() const;... B b; b.show(); b.show(5); // poprawne // niepoprawne L. St pie«(ajd) Programowanie obiektowe w C++ 21 / 26

22 UWAGI W wyniku powtórnej denicji funkcji skªadowej w klasie pochodnej ró»ni cej si argumentem, powstaje jedna wersja tej funkcji, a nie dwie przeci»one. Funkcja z klasy bazowej zostaje ukryta. Nowa denicja ukrywa wszystkie metody klasy bazowej o tej samej nazwie, niezaleznie od ich sygnatur. Je±li redeniujemy odziedziczon metod, musi ona dokªadnie pasowa do prototypu funkcji z klasy bazowej. Istnieje mozliwo± zmiany zwracanego przez funkcj typu ze wska¹nika lub referencji klasy bazowej na wska¹nik lub referencj klasy pochodnej. Jest to kowariancja zwracanego typu. Je±li deklaracja funkcji w klasie bazowej jest przeci»ona, to w klasie pochodnej musimy powtórnie zdeniowa wszystkie wersje z klasy bazowej. L. St pie«(ajd) Programowanie obiektowe w C++ 22 / 26

23 Abstrakcyjne klasy bazowe W j zyku C++ istnieje sposób na umieszczenie funkcji bez implementacji w postaci funkcji czysto wirtualnej. Funkcja czysto wirtualna ma wyra»enie = 0 na ko«cu deklaracji. Aby klasa byªa prawdziw klas czysto abstrakcyjn, musi mie przynajmniej jedn funkcj czysto wirtualn. Je±li klasa zawiera metod czysto wirtualn, nie mo»emy tworzy obiektów tej klasy. St d klasy te s wykorzystywane jedynie jako klasy bazowe. Ka»d metod czysto wirtualn klasy bazowej nale»y przeci»y w klasie pochodnej, w przeciwnym przypadku klasa pochodna nadal pozostanie czysto abstrakcyjn. L. St pie«(ajd) Programowanie obiektowe w C++ 23 / 26

24 override - w C++11 oznacza,»e dana metoda w klasie pochodnej przesªania metod wirtualn z klasy bazowej class B { virtual void x() { class D : public B { virtual void x() override { //OK class E : public B { virtual void x() const override { //Bª d class F : public B { virtual void y() override { //Bª d L. St pie«(ajd) Programowanie obiektowe w C++ 24 / 26

25 Przykªad 4 class Ksztalt { virtual ~Ksztalt() { virtual void rysuj() = 0; //ka»dy okre±lony //ksztaªt musi da sie narysowa class Kolo : public Ksztalt { virtual void rysuj() { std::cout << "Rysuje kolo: ( )" << std::endl; class Kwadrat : public Ksztalt { virtual void rysuj() { std::cout << "Rysuje kwadrat: [ ]" << std::endl; L. St pie«(ajd) Programowanie obiektowe w C++ 25 / 26

26 Przykªad 4 cd. int main(){ //Ksztalt a; Ksztalt * a = new Kolo, * b = new Kwadrat; a->rysuj(); b->rysuj(); delete a; delete b; L. St pie«(ajd) Programowanie obiektowe w C++ 26 / 26

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

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

Programowanie 2. Język C++. Wykład 9. 9.1 Ukrywanie metod, metody nadpisane... 1 9.2 Metody wirtualne, wirtualny destruktor... 2 9.3 Metody czysto wirtualne... 6 9.4 Klasy abstrakcyjne... 7 9.5 Wielodziedziczenie... 9 9.1 Ukrywanie metod,

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykªad 1

Programowanie obiektowe w C++ Wykªad 1 Programowanie obiektowe w C++ Wykªad 1 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++Wykªad 1 1 / 37 Zagadnienia: Klasy, obiekty Dziedziczenie Polimorzm

Bardziej szczegółowo

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Konstruktory i destruktory

Bardziej szczegółowo

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

PROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 3 - polimorfizm. dr inż. Robert Nowak - p. 1/14 Powtórzenie Powtórzenie: klasy autonomiczne: konstruktor, konstruktor kopiujacy, operator przypisania, destruktor

Bardziej szczegółowo

Wzorce projektowe strukturalne cz. 1

Wzorce projektowe strukturalne cz. 1 Wzorce projektowe strukturalne cz. 1 Krzysztof Ciebiera 19 pa¹dziernika 2005 1 1 Wst p 1.1 Podstawowe wzorce Podstawowe wzorce Podstawowe informacje Singleton gwarantuje,»e klasa ma jeden egzemplarz. Adapter

Bardziej szczegółowo

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Zaawansowane programowanie w języku C++ Programowanie obiektowe Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

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

Składnia C++ Programowanie Obiektowe Mateusz Cicheński Składnia C++ Programowanie Obiektowe Mateusz Cicheński Klasy i modyfikatory dostępu Przesłanianie metod Polimorfizm Wskaźniki Metody wirtualne Metody abstrakcyjne i interfejsy Przeciążanie operatorów Słowo

Bardziej szczegółowo

Dziedziczenie. Ogólna postać dziedziczenia klas:

Dziedziczenie. Ogólna postać dziedziczenia klas: Dziedziczenie Ogólna postać dziedziczenia klas: class nazwa_clasy_pochodnej : specyfikator_dostępu nazwa_clasy_bazowej specyfikator_dostępu : public private protected Specyfikator dostępu definiuje, w

Bardziej szczegółowo

Wprowadzenie do programowanie obiektowego w języku C++

Wprowadzenie do programowanie obiektowego w języku C++ Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta Autor Roman Simiński Kontakt roman.siminski@us.edu.pl www.us.edu.pl/~siminski Niniejsze opracowanie zawiera skrót treści wykładu, lektura

Bardziej szczegółowo

Programowanie obiektowe w języku

Programowanie obiektowe w języku Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy

Bardziej szczegółowo

TEMAT : KLASY POLIMORFIZM

TEMAT : KLASY POLIMORFIZM TEMAT : KLASY POLIMORFIZM 1. Wprowadzenie do polimorfizmu i funkcji wirtualnych w języku C++ Język C++ zakłada, że w pewnych przypadkach uzasadnione jest tworzenie klas, których reprezentanci w programie

Bardziej szczegółowo

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy

Imi i nazwisko... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy Imi i nazwisko....................................................... Egzamin - Programowanie Obiektowe II rok informatyki, studia pierwszego stopnia, niestacjonarne Termin zerowy 21.01.2017 Instrukcja:

Bardziej szczegółowo

Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)

Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz www.zssk.pwr.wroc.pl Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska Dziedziczenie 221 Dziedziczenie Dziedziczenie

Bardziej szczegółowo

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

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 uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Historia C++ został zaprojektowany w 1979 przez Bjarne Stroustrupa jako rozszerzenie języka C o obiektowe mechanizmy abstrakcji danych i

Bardziej szczegółowo

TEMAT : KLASY DZIEDZICZENIE

TEMAT : KLASY DZIEDZICZENIE TEMAT : KLASY DZIEDZICZENIE Wprowadzenie do dziedziczenia w języku C++ Język C++ możliwa tworzenie nowej klasy (nazywanej klasą pochodną) w oparciu o pewną wcześniej zdefiniowaną klasę (nazywaną klasą

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;

Bardziej szczegółowo

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.

PROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.

Bardziej szczegółowo

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie

0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie 0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na

Bardziej szczegółowo

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

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016 Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac

Bardziej szczegółowo

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013 Wykład nr 6 (07.12.2012) dr inż. Jarosław Forenc Rok

Bardziej szczegółowo

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!!

1. Klasa typu sealed. Przykład 1. sealed class Standard{ class NowyStandard:Standard{ // błd!!! Temat: Klasy typu sealed. Klasy abstrakcyjne. Deklaracja i implementacja interfejsu. Typ Object i operatory is oraz as. Czas ycia obiektu. Destruktory. 1. Klasa typu sealed Przykład 1 Klasa typu sealed

Bardziej szczegółowo

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.

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. Programowanie uzupełnienie notatek: dr Jerzy Białkowski 1 2 3 4 Obiektowość języka C++ ˆ Klasa (rozszerzenie struktury), obiekt instancją klasy, konstruktory i destruktory ˆ Enkapsulacja - kapsułkowanie,

Bardziej szczegółowo

Kompozycja i dziedziczenie klas

Kompozycja i dziedziczenie klas Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas

Bardziej szczegółowo

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

Wykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej Wykład V - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Programowanie obiektowe Dziedziczenie (inheritance) - mechanizm

Bardziej szczegółowo

class A { public: A(): i(5), s("abc") { } int i; string s; };

class A { public: A(): i(5), s(abc) { } int i; string s; }; UWAGA! PoniŜej są pytania z egzaminu, z zaznaczonymi poprawnymi odpowiedziami. Przy niektórych z nich napisałem jakieś słowo komentarza (czemu tak, a nie inaczej...). Przypominam, Ŝe zasada punktacji była

Bardziej szczegółowo

Programowanie obiektowe w C++ Wykład 12

Programowanie obiektowe w C++ Wykład 12 Programowanie obiektowe w C++ Wykład 12 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) 1 / 22 Zakresowe pętle for double tab[5] {1.12,2.23,3.33,4.12,5.22 for(double x: tab)

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 5 W programowaniu obiektowym programista koncentruje się na obiektach. Zadaje sobie pytania typu:

Bardziej szczegółowo

Programowanie obiektowe i zdarzeniowe

Programowanie obiektowe i zdarzeniowe Marek Tabędzki Programowanie obiektowe i zdarzeniowe 1/23 Programowanie obiektowe i zdarzeniowe wykład 6 polimorfizm Na poprzednim wykładzie: dziedziczenie jest sposobem na utworzenie nowej klasy na podstawie

Bardziej szczegółowo

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:

Języki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk.   tel: Konsultacje: piątek: Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: gos@if.pw.edu.pl tel: +48 22 234 58 51 Konsultacje: piątek: 12.00 13.30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika Warszawska

Bardziej szczegółowo

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

Zaawansowane programowanie w języku C++ Klasy w C++ Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń

Bardziej szczegółowo

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

Programowanie obiektowe, wykład nr 6. Klasy i obiekty Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 6 Klasy i obiekty W programowaniu strukturalnym rozwój oprogramowania oparto

Bardziej szczegółowo

Model obiektu w JavaScript

Model obiektu w JavaScript 16 marca 2009 E4X Paradygmat klasowy Klasa Deniuje wszystkie wªa±ciwo±ci charakterystyczne dla wybranego zbioru obiektów. Klasa jest poj ciem abstrakcyjnym odnosz cym si do zbioru, a nie do pojedynczego

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 4

PARADYGMATY PROGRAMOWANIA Wykład 4 PARADYGMATY PROGRAMOWANIA Wykład 4 Metody wirtualne i polimorfizm Metoda wirualna - metoda używana w identyczny sposób w całej hierarchii klas. Wybór funkcji, którą należy wykonać po wywołaniu metody wirtualnej

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 2

PARADYGMATY PROGRAMOWANIA Wykład 2 PARADYGMATY PROGRAMOWANIA Wykład 2 Definiowanie klas w C++ - ciąg dalszy Lista inicjalizująca konstruktora Przeznaczenie - do inicjalizacji pól klasy z kwalifikatorem const i inicjalizacji obiektów składowych

Bardziej szczegółowo

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie

Informatyka II Laboratorium 3 : Programowania obiektowe C++ - dziedziczenie Materiały: Informatyka II Laboratorium : Programowania obiektowe C++ - dziedziczenie Książka: Symfonia C++, Jerzy Grębosz. Wykład: www.materialy.prz-rzeszow.pl, Informatyka II, dr Wojciech Rząsa. Zasoby

Bardziej szczegółowo

Owad():waga(1),jadowitosc(false) {cout<<"konstruktor domyslny owada\n";}

Owad():waga(1),jadowitosc(false) {cout<<konstruktor domyslny owada\n;} // Wskaźniki #include using namespace std; class Owad int waga; bool jadowitosc; Owad():waga(1),jadowitosc(false) cout

Bardziej szczegółowo

Programowanie obiektowe w Perlu

Programowanie obiektowe w Perlu Programowanie obiektowe w Perlu Piotr Wydrych http://www.kt.agh.edu.pl/~wydrych/ Wydziaª Elektrotechniki, Automatyki, Informatyki i Elektroniki Katedra Telekomunikacji 30 kwietnia 2009 1/26 Obiekty, klasy,

Bardziej szczegółowo

Programowanie w Języku C 2

Programowanie w Języku C 2 Programowanie w Języku C 2 Laboratorium 10 Dziedziczenie i polimorfizm Opracował: mgr inż. Leszek Ciopiński Wstęp teoretyczny Wst p - Co to jest dziedziczenie Cz sto podczas tworzenia klasy napotykamy

Bardziej szczegółowo

Zaawansowane programowanie w C++ (PCP)

Zaawansowane programowanie w C++ (PCP) Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie

Bardziej szczegółowo

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

Programowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów Rok akademicki 2016/2017, Wykład nr 5 2/40 Plan wykładu nr 5 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017

Bardziej szczegółowo

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

Programowanie 2. Język C++. Wykład 2. 2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...

Bardziej szczegółowo

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

Informatyka I. Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Informatyka I Dziedziczenie. Nadpisanie metod. Klasy abstrakcyjne. Wskaźnik this. Metody i pola statyczne. dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Dziedziczenie klas

Bardziej szczegółowo

C++ - [4-7] Polimorfizm

C++ - [4-7] Polimorfizm Slajd 1 z 14 C++ - [4-7] Polimorfizm Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 20 maja 2013 r. Slajd 2 z 14 Polimorfizm i klasa polimorficzna POLIMORFIZM (cytat z Wikipedii) (wielopostaciowość)

Bardziej szczegółowo

Listy powiązane zorientowane obiektowo

Listy powiązane zorientowane obiektowo Listy powiązane zorientowane obiektowo Aby zilustrować potęgę polimorfizmu, przeanalizujmy zorientowaną obiektowo listę powiązaną. Jak zapewne wiesz, lista powiązana jest strukturą danych, zaprojektowaną

Bardziej szczegółowo

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie

Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Języki i techniki programowania Ćwiczenia 3 Dziedziczenie Klasa abstrakcyjna Autor: Marcin Orchel Klasa abstrakcyjna to taka, że nie możemy tworzyć obiektów tej klasy, możemy jednak dziedziczyć po tej

Bardziej szczegółowo

Konstruktor kopiujacy

Konstruktor kopiujacy Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony

Bardziej szczegółowo

Wykład 4: Klasy i Metody

Wykład 4: Klasy i Metody Wykład 4: Klasy i Metody Klasa Podstawa języka. Każde pojęcie które chcemy opisać w języku musi być zawarte w definicji klasy. Klasa definiuje nowy typ danych, których wartościami są obiekty: klasa to

Bardziej szczegółowo

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

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016 Wykład 1 3 marca 2016 Słowa kluczowe języka Java abstract, break, case, catch, class, const, continue, default, do, else, enum, extends, final, finally, for, goto, if, implements, import, instanceof, interface,

Bardziej szczegółowo

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

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo

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

Typy zmiennych proste i złożone. Programowanie komputerów. Tablica. Złożone typy zmiennych. Klasa. Struktura Programowanie komputerów Programowanie obiektowe. Typy zmiennych proste i złożone Typy zmiennych "wbudowane", tj. identyfikowane przez słowa kluczowe, są określane jako proste: int short long float double

Bardziej szczegółowo

Wykład 5 Okna MDI i SDI, dziedziczenie

Wykład 5 Okna MDI i SDI, dziedziczenie Wykład 5 Okna MDI i SDI, dziedziczenie Autor: Zofia Kruczkiewicz Zagadnienia 1. Aplikacja wielookienkowa. Zakładanie projektu typu CLR Windows Forms 1.1. Aplikacja typu MDI 1.2. Aplikacja typu SDI 2. Dziedziczenie

Bardziej szczegółowo

Projektowanie klas c.d. Projektowanie klas przykład

Projektowanie klas c.d. Projektowanie klas przykład Projektowanie klas c.d. ogólne wskazówki dotyczące projektowania klas: o wyodrębnienie klasy odpowiedź na potrzeby życia (obsługa rozwiązania konkretnego problemu) o zwykle nie uda się utworzyć idealnej

Bardziej szczegółowo

Abstrakcyjny typ danych

Abstrakcyjny typ danych Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są

Bardziej szczegółowo

Technologie i usługi internetowe cz. 2

Technologie i usługi internetowe cz. 2 Technologie i usługi internetowe cz. 2 Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 15 luty 2014 r. 1 Programowanie obiektowe Programowanie obiektowe (z ang. object-oriented programming), to paradygmat programowania,

Bardziej szczegółowo

Środowisko programistyczne GEANT4

Środowisko programistyczne GEANT4 Środowisko programistyczne GEANT4 Leszek Adamczyk Wydział Fizyki i Informatyki Stosowanej Akademia Górniczo-Hutnicza Wykłady w semestrze zimowym 2013/2014 Informacje wstępne Kurs oparty jest na: dokumentacji

Bardziej szczegółowo

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi

IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi IMIĘ i NAZWISKO: Pytania i (przykładowe) Odpowiedzi EGZAMIN PIERWSZY (25 CZERWCA 2013) JĘZYK C++ poprawiam ocenę pozytywną z egzaminu 0 (zakreśl poniżej x) 1. Wśród poniższych wskaż poprawną formę definicji

Bardziej szczegółowo

Projektowanie obiektowe. Roman Simiński Wzorce projektowe Wybrane wzorce strukturalne

Projektowanie obiektowe. Roman Simiński  Wzorce projektowe Wybrane wzorce strukturalne Projektowanie obiektowe Roman Simiński roman.siminski@us.edu.pl www.siminskionline.pl Wzorce projektowe Wybrane wzorce strukturalne Fasada Facade Pattern 2 Wzorzec Fasada Facade Pattern koncepcja 3 Wzorzec

Bardziej szczegółowo

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

2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy 2.4 Dziedziczenie Poprzednie dwa rozdziały które dotyczyły zagadnienia automatów komórkowych na przykładach programów w C++. Mogłyby one sugerować że niekoniecznie trzeba programować obiektowo aby napisać

Bardziej szczegółowo

Wykład 4 Wybrane zagadnienia programowania w C++

Wykład 4 Wybrane zagadnienia programowania w C++ Wykład 4 Wybrane zagadnienia programowania w C++ Przykład programu obiektowego Dziedziczenie polimorfizm i metody wirtualne Wzorce (szablony) funkcji Wzorce klas 2016-01-03 Bazy danych-1 W4 1 Dziedziczenie

Bardziej szczegółowo

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.

Programowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d. Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie

Bardziej szczegółowo

Polimorfizm, metody wirtualne i klasy abstrakcyjne

Polimorfizm, metody wirtualne i klasy abstrakcyjne Programowanie obiektowe Polimorfizm, metody wirtualne i klasy abstrakcyjne Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Polimorfizm,

Bardziej szczegółowo

Programowanie, część I

Programowanie, część I Programowanie, część I Rafał J. Wysocki Instytut Fizyki Teoretycznej, Wydział Fizyki UW 22 lutego 2011 Rafał J. Wysocki (rwys@fuw.edu.pl) Programowanie, część I 22 lutego 2011 1 / 80 Wstęp Informacje organizacyjne

Bardziej szczegółowo

Programowanie Obiektowe i C++

Programowanie Obiektowe i C++ Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 30.10.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 30.10.2006 85 / 112 Zgodność typów Rozważmy klasy class A { //... }; class

Bardziej szczegółowo

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

Klasa jest nowym typem danych zdefiniowanym przez użytkownika. Najprostsza klasa jest po prostu strukturą, np Klasy Klasa jest nowym typem danych zdefiniowanym przez użytkownika Wartości takiego typu nazywamy obiektami Najprostsza klasa jest po prostu strukturą, np struct Zespolona { Klasy jako struktury z operacjami

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe 10.04.2017 W slajdach są materiały zapożyczone z https://www.ii.uni.wroc.pl/~prz/2012lato/cpp/slajdy/cpp5.ppt Przykład wykorzystania obiektu Obiekt X jest instancją klasy Y Obiekt

Bardziej szczegółowo

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/

Kurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i

Bardziej szczegółowo

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji

W poprzednim odcinku... Podstawy matematyki dla informatyków. Relacje równowa»no±ci. Zbiór (typ) ilorazowy. Klasy abstrakcji W poprzednim odcinku... Podstawy matematyki dla informatyków Rodzina indeksowana {A t } t T podzbiorów D to taka funkcja A : T P(D),»e A(t) = A t, dla dowolnego t T. Wykªad 3 20 pa¹dziernika 2011 Produkt

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Wykład 5: Dziedziczenie i polimorfizm 3/24/2013 S.Deniziak: Programowanie obiektowe - Java 1 Kompozycja klas class Drzewo { class Krzew { class Las { Drzewo drzewostan[ ]; Krzew

Bardziej szczegółowo

Sposoby przekazywania parametrów w metodach.

Sposoby przekazywania parametrów w metodach. Temat: Definiowanie i wywoływanie metod. Zmienne lokalne w metodach. Sposoby przekazywania parametrów w metodach. Pojcia klasy i obiektu wprowadzenie. 1. Definiowanie i wywoływanie metod W dotychczas omawianych

Bardziej szczegółowo

Programowanie obiektowe C++

Programowanie obiektowe C++ Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 5 Witold Dyrka witold.dyrka@pwr.wroc.pl 5/11/2012 Prawa autorskie itp. Niektóre slajdy do tego wykładu powstało w oparciu o: książkę

Bardziej szczegółowo

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )

Jzyk C++ cz 3. Jarosław Gramacki Instytut Informatyki i Elektroniki ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2 ( $%%) )'20 )*0) 1 / ) Jzyk C++ cz 3 Jarosław Gramacki Instytut Informatyki i Elektroniki # $$%%& ' ( $)*)+' *, - ( ' )*'.' '',*/ *, ','*0) 1 / ) %*+ 2'' 2" ( $%%) )'20 )*0) 1 / )!" 2 # $$%%& ' ( $%%/,))3 ( %* 2 / 4 ( ( *' *''*,

Bardziej szczegółowo

Klasy abstrakcyjne i interfejsy

Klasy abstrakcyjne i interfejsy Klasy abstrakcyjne i interfejsy Streszczenie Celem wykładu jest omówienie klas abstrakcyjnych i interfejsów w Javie. Czas wykładu 45 minut. Rozwiązanie w miarę standardowego zadania matematycznego (i nie

Bardziej szczegółowo

PARADYGMATY PROGRAMOWANIA Wykład 3

PARADYGMATY PROGRAMOWANIA Wykład 3 PARADYGMATY PROGRAMOWANIA Wykład 3 Definiowanie operatorów i ich przeciążanie Przykłady zastosowania operatorów: a) operator podstawienia ( = ) obiektów o złożonej strukturze, b) operatory działania na

Bardziej szczegółowo

Wstęp do programowania obiektowego w języku C++

Wstęp do programowania obiektowego w języku C++ Wstęp do programowania obiektowego w języku C++ Wstęp Programowanie obiektowe (ang. object-oriented programming [skrót OOP]) znacząco różni się od programowania proceduralnego, gdzie dane i procedury nie

Bardziej szczegółowo

Podstawy Programowania semestr drugi. Wykład czternasty

Podstawy Programowania semestr drugi. Wykład czternasty Wykład czternasty 1. Polimorfizm Ostatni wykład zakończyliśmy stwierdzeniem, że możemy obiektowi dowolnej klasy przypisa ć obiekt klasy dziedziczącej po tej klasie. Przypisanie takie obejmuje jednak jedynie

Bardziej szczegółowo

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

Wykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.: Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,

Bardziej szczegółowo

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class).

Wprowadzenie w dziedziczenie. Klasa D dziedziczy klasę B: Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Wprowadzenie w dziedziczenie Klasa D dziedziczy klasę B: B klasa bazowa D klasa pochodna Klasa B klasa bazowa (base class), klasa D klasa pochodna (derived class). Najpierw jest tworzona klasa bazowa,

Bardziej szczegółowo

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,

Bardziej szczegółowo

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

PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie. dr inż. Jacek Naruniec PROE wykład 4 pozostałe operatory, forward declaration, dziedziczenie dr inż. Jacek Naruniec Kolokwium wykładowe Pierwsze kolokwium 6 kwietnia Drugie kolokwium 1 czerwca Kolokwium poprawkowe 8 czerwca

Bardziej szczegółowo

Wstęp do programowania obiektowego

Wstęp do programowania obiektowego Wstęp do programowania obiektowego KLASA ISTREAM KLASA OSTREAM MANIPULATORY STRUMIENIOWE STRUKTURY W C++ DOMYŚLNE WARTOŚCI PARAMETRÓW KONSTRUKTORY I DESTRUKTORY KLAS POCHODNYCH KONSTRUKTOR KOPIUJĄCY POLIMORFIZM

Bardziej szczegółowo

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

2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie

Bardziej szczegółowo

( rednio)zaawansowane programowanie w C++

( rednio)zaawansowane programowanie w C++ ( rednio)zaawansowane programowanie w C++ Wykªad 2 - staªo±, wzorce projektowe Robert Nowak 2017L ( rednio)zaawansowane programowanie w C++ 1/28 Plan wykªadu podstawowe poj cia w C++ (powtórzenie) staªo±

Bardziej szczegółowo

Laboratorium 1 - Programowanie proceduralne i obiektowe

Laboratorium 1 - Programowanie proceduralne i obiektowe Laboratorium 1 - Programowanie proceduralne i obiektowe mgr inż. Kajetan Kurus 4 marca 2014 1 Podstawy teoretyczne 1. Programowanie proceduralne (powtórzenie z poprzedniego semestru) (a) Czym się charakteryzuje?

Bardziej szczegółowo

Przeciążenie operatorów

Przeciążenie operatorów Przeciążenie operatorów W C++ można przeciążyć większość operatory tak, żeby wykonywali zadania, charakterystyczne dla danej klasy Po przeciążeniu odpowiednich operatorów można posługiwać się obiektami

Bardziej szczegółowo

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy

wykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski i obiekty 1 2 3 4 i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ

Bardziej szczegółowo

Programowanie obiektowe język C++

Programowanie obiektowe język C++ Programowanie obiektowe język C++ Dr inż. Sławomir Samolej D108A, tel: 865 1486, email: ssamolej@prz-rzeszow.pl WWW: ssamolej.prz-rzeszow.pl Podziękowanie: Chcę podziękować dr inż.. Grzegorzowi Hałdasiowi

Bardziej szczegółowo

Pola i metody statyczne

Pola i metody statyczne Pola i metody statyczne Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2009 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania

Bardziej szczegółowo

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)

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) Różnice między C i C++ (Rozszerzenia C++) Nowe słowa kluczowe class, delete, new, friend,... Komentarze /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Wskaźniki typu void W C wskaźniki

Bardziej szczegółowo

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++

EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++ IMIĘ i NAZWISKO: przykładowe odpowiedzi NR: 0 EGZAMIN 2 (14 WRZEŚNIA 2015) JĘZYK C++ 1. Napisz precyzyjnie co to jest ptr jeśli: const * const Foo ptr; ptr to stały wskaźnik do stałego obiektu typu Foo

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki 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

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc

Bardziej szczegółowo

2 Skªadnia polece«w pliku

2 Skªadnia polece«w pliku Interpreter opisu dziaªa«platformy mobilnej wtyczki 1 Ogólny opis zadania Nale»y napisa program, który b dzie w stanie przeczyta z pliku tekstowego sekwencj polece«ruchu, a nast pnie zasymulowa dziaªanie

Bardziej szczegółowo

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania

Bardziej szczegółowo

Algorytmy zwiazane z gramatykami bezkontekstowymi

Algorytmy zwiazane z gramatykami bezkontekstowymi Algorytmy zwiazane z gramatykami bezkontekstowymi Rozpoznawanie j zyków bezkontekstowych Problem rozpoznawania j zyka L polega na sprawdzaniu przynale»no±ci sªowa wej±ciowego x do L. Zakªadamy,»e j zyk

Bardziej szczegółowo

Java - tablice, konstruktory, dziedziczenie i hermetyzacja

Java - tablice, konstruktory, dziedziczenie i hermetyzacja Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja

Bardziej szczegółowo

Hermetyzacja oraz pola i metody statyczne

Hermetyzacja oraz pola i metody statyczne Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2010 Bogdan Kreczmer Niniejszy dokument

Bardziej szczegółowo

Podstawy Programowania Obiektowego

Podstawy Programowania Obiektowego Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja

Bardziej szczegółowo