TEMAT : KLASY DZIEDZICZENIE
|
|
- Magdalena Gajewska
- 7 lat temu
- Przeglądów:
Transkrypt
1 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ą podstawową). Klasa pochodna dziedziczy dane oraz funkcje składowe z klasy podstawowej. W ten sposób nie musimy tworzyć całego kodu klasy pochodnej a jedynie nowe jej elementy, które nie były do tej pory zaimplementowane w klasie podstawowej. Oczywiście klasa pochodna może stać się klasą podstawową dla kolejnej tworzonej przez nas klasy. W programowaniu obiektowym rozróżniamy następujące rodzaje dziedziczenia: dziedziczenie jednokrotne (pojedyncze) gdy klasa pochodna tworzona jest na podstawie tylko jednej klasy podstawowej (oczywiście klasa bazowa może dziedziczyć również z jakiejś innej klasy), dziedziczenie wielokrotne gdy klasa pochodna tworzona jest na podstawie wielu klas podstawowych. Zadanie 1 Przeanalizuj sposób implementacji przedstawionych poniżej dwóch klas CPunkt oraz CKolo. Jak mogłaby wyglądać definicja klasy CPunkt, gdyby programista nie zaplanował wykorzystania mechanizmu dziedziczenia danych i funkcji składowych klasy CPunkt przez klasę CKolo? Implementacja klasy CPunkt jako klasy podstawowej class CPunkt friend ostream & operator << (ostream &, const CPunkt &); public: CPunkt(double x = 0.0, double y = 0.0); ~CPunkt(); void SetPunkt (double x_t, double y_t); double GetX () const return x;; double GetY () const return y;; void Drukuj () const; protected: double x,y; ; CPunkt::CPunkt(double x_t, double y_t) SetPunkt(x_t,y_t); CPunkt::~CPunkt() void CPunkt::SetPunkt (double x_t, double y_t) x = x_t; y = y_t; void CPunkt::Drukuj () const cout << "[" << x << ", " << y << "]"; ostream & operator << (ostream & output, const CPunkt & pkt) output << "[" << pkt.x << ", " << pkt.y << "]"; return output; 1
2 Implementacja klasy CKolo dziedziczącej z klasy CPunkt class CKolo : public CPunkt friend ostream & operator << (ostream &, const CKolo &); public: CKolo(double R = 0.0, double x = 0.0, double y = 0.0); ~CKolo(); void SetR (double R_t); double GetR () const; double ObliczObszar () const; protected: double R; ; CKolo::CKolo(double R_t, double x_t, double y_t) : CPunkt(x_t,y_t) SetR(R_t); CKolo::~CKolo() void CKolo::SetR (double R_t) if (R_t >= 0.0) R = R_t; else R = 0.0; double CKolo::GetR () const return R; double CKolo::ObliczObszar () const return *R*R; ostream & operator << (ostream & output, const CKolo & kolo) output << "Srodek kola = " << CPunkt(kolo) << ", R = " << kolo.r; return output; Analiza istotnych elementów klas CPunkt oraz CKolo z punktu widzenia mechanizmu dziedziczenia W powyższym przykładzie widzimy propozycję dwóch klas. Pierwsza z nich, tj. klasa CPunkt, jest klasą podstawową dla klasy pochodnej CKolo. Zadaniem klasy CPunkt jest reprezentowanie w programie abstrakcyjnego obiektu punktu, o którym zakładamy, że definiują go jego współrzędne x i y. Klasa CKolo reprezentuje natomiast abstrakcyjny obiekt koła, które jest zdefiniowane przez współrzędne środka tego koła oraz długość jego promienia. Do ważnych elementów wykorzystywanych w powyższych klasach możemy zaliczyć: wybór sposobu dziedziczenia przez klasę CKolo class CKolo : public CPunkt Standard języka C++ przewiduje trzy rodzaje dziedziczenia: publiczne, chronione i prywatne. W rozważanym przykładzie klasa CKolo dziedziczy z klasy CPunkt wykorzystując do tego zadania interfejs publiczny. Dziedziczenie oznaczone jest dwukropkiem w nagłówku definicji klasy. Słowo kluczowe public określa rodzaj dziedziczenia, tj. dziedziczenie publiczne. Dalej w kolejności podajemy nazwę klasy podstawowej dla definiowanej właśnie klasy pochodnej. Dziedziczenie publiczne zakłada, że dane i funkcje składowe klasy podstawowej zadeklarowane jako public i private, stają się automatycznie danymi i funkcjami składowymi odpowiednio publicznymi i prywatnymi klasy pochodnej. Należy jednak mieć na 2
3 uwadze fakt, że prywatne składowe klasy podstawowej nie są bezpośrednio dostępne dla klas pochodnych. Klasa pochodna ma do nich dostęp za pośrednictwem publicznych funkcji dostępowych zdefiniowanych w klasie podstawowej. sposób określania dostępu do danych klasy podstawowej CPunkt protected: double x,y; Zadeklarowanie składowych x, y przy użyciu specyfikatora dostępu protected uniemożliwia bezpośredni dostęp do nich dla klientów klasy CPunkt w programie. Dostęp do danych mają funkcje składowe klasy oraz funkcje nią zaprzyjaźnione, natomiast bezpośredni dostęp do tych danych z programu jest możliwy wyłącznie poprzez odpowiednie publiczne funkcje dostępowe. W przypadku, gdy chcemy zastosować mechanizm dziedziczenia, w definicji klasy podstawowej najczęściej wykorzystujemy tryb dostępu protected. W ten sposób dostęp do danych mają funkcje składowe i funkcje zaprzyjaźnione zdefiniowane zarówno w klasie podstawowej jak i w klasie pochodnej. Wszystkie składowe publiczne i chronione klasy CPunkt są dziedziczone jako odpowiednio, składowe publiczne i chronione w klasie CKolo. Oznacza to, ze interfejs publiczny klasy CKolo zawiera zarówno publiczne składowe klasy CPunkt, jak i publiczne składowe klasy CKolo. sposób implementacji konstruktora klasy pochodnej CKolo / wywoływanie konstruktora klasy podstawowej przez konstruktor klasy pochodnej CKolo::CKolo(double R_t, double x_t, double y_t) : CPunkt(x_t,y_t) SetR(R_t); Konstruktor klasy CKolo wywołuje konstruktor klasy CPunkt, który jest odpowiedzialny za zainicjowanie tej części obiektu klasy CKolo, która pochodzi z klasy podstawowej CPunkt. Wartości x_t, y_t są przekazywane z konstruktora CKolo do konstruktora CPunkt, który zainicjuje nimi dane składowe klasy podstawowej. Dodatkowo inicjowana jest wartość promienia R poprzez funkcję SetR (w celu sprawdzenia poprawności wartości zadanego promienia). Należy pamiętać, że w przypadku, gdy konstruktor klasy podstawowej CPunkt nie zostanie przez nas wywołany jawnie w konstruktorze klasy pochodnej CKolo, operacja wywołania domyślnego konstruktora klasy CPunkt i tak zostałaby przeprowadzona dla domyślnych wartości x i y. implementacja funkcji zaprzyjaźnionych z klasą pochodną CKolo ostream & operator << (ostream & output, const CKolo & kolo) output << "Srodek kola = " << CPunkt(kolo) << ", R = " << kolo.r; return output; Funkcje zaprzyjaźnione z klasą podstawową nie są dziedziczone przez klasę pochodną. Tak więc w rozważanym przykładzie klasa pochodna CKolo nie może bezpośrednio wywołać zaprzyjaźnionej funkcji operatorowej klasy CPunkt przeciążającej operator wstawiania do strumienia <<. Istnieje jednak możliwość przeciążenia operatora << klasy CKolo w taki sposób, aby oprócz danych specyficznych dla obiektu koła, tzn. w naszym przykładzie promienia R, wyświetlone zostały również współrzędne środka koła. Operację taką umożliwia operacja rzutowania referencji do obiektu CKolo na klasę CPunkt. W wyniku takiego działania zostanie wywołany przeciążony operator << klasy CPunkt. deklaracja funkcji składowej obiektu jako funkcji stałej const void Drukuj () const; void CPunkt::Drukuj () const cout << "[" << x << ", " << y << "]"; Deklaracja funkcji składowej obiektu jako funkcji stałej const jest ważnym elementem programowania obiektowego. Wiąże się to z tym, że w przypadku deklaracji stałego obiektu pewnej klasy w kodzie programu, mamy możliwość nadania mu wartości jedynie w chwili jego tworzenia (poprzez konstruktor danej klasy), jednak wywołanie dowolnej z jego funkcji składowych 3
4 (nawet tych, które nie modyfikują wartości danych) nie jest dozwolone. Wyjątek stanowią funkcje zadeklarowane w obiekcie jako const zarówno w prototypie jak też w definicji definicji funkcji. Funkcje tak zdefiniowane nie mogą jednak modyfikować danych obiektu. Wykorzystanie klas CKolo i CPunkt w programie // // // Czesc 1 - Wykorzystanie klasy CPunkt oraz CKolo w programie // // CPunkt * ptrpunkt = 0; CPunkt punkta (30,50); CKolo * ptrkolo = 0; CKolo kolob (2.5,120,90); cout << "Czesc 1" << endl; cout << " " << endl; cout << "Punkt A: " << punkta << endl; cout << "Kolo B: " << kolob << endl << endl; // Czesc 2 - Traktujemy kolo jako punkt ('widzimy' jedynie czesc z klasy podstawowej) cout << "Czesc 2" << endl; cout << " " << endl; // Zad.1 Przypisanie adresu kola wskaznikowi ptrpunkt cout << "Kolo B (poprzez *ptrpunkt): " << *ptrpunkt << endl << endl; // Zad.2 Traktujemy kolob jako kolo (z rzutowaniem) // Przypisanie adresu kola wskaznikowi ptrpunkt // Rzutowanie wskaznika klasy podstawowej na wskaznik klasy pochodnej cout << "Kolo B (przez *ptrkolo): " << *ptrkolo << endl; cout << "Powierzchnia kola B (przez ptrkolo): " << ptrkolo->obliczobszar() << endl << endl; // Czesc 3 - Niebezpieczna operacja - Traktowanie punktu jako kola // Przypisanie adresu punktu wskaznikowi ptrpunkt ptrpunkt = &punkta; // Rzutowanie wskaznika klasy podstawowej na wskaznik klasy pochodnej cout << "Czesc 3" << endl; cout << " " << endl; cout << "Punkt A (poprzez *ptrkolo): " << *ptrkolo << endl; cout << "Powierzchnia obiektu ptrkolo: " << ptrkolo->obliczobszar() << endl << endl; Do ważnych elementów przedstawionych w kolejnych częściach w programie możemy zaliczyć: sposób deklaracji obiektów klasy CPunkt i CKolo oraz odpowiednich wskaźników do tych obiektów CPunkt * ptrpunkt = 0; CPunkt punkta (30,50); CKolo * ptrkolo = 0; CKolo kolob (2.5,120,90); Powyższy kod przedstawia deklarację obiektu punkta. Wywołaniu konstruktora towarzyszy nadaje wartości współrzędnym x 4
5 oraz y punktu w taki sposób, że x = 30, y = 50. Deklaracja wskaźnika ptrpunkt do typu CPunkt połączona jest z inicjacją wartością 0 (co oznacza, że wskaźnik nie wskazuje w tej chwili na żaden obiekt klasy CPunkt). Wskaźnik ptrpunkt służy do wskazywania na obiekty klasy CPunkt. Podobne operacje są wykonane w odniesieniu do obiektu klasy CKolo oraz wskaźnika do typu CKolo. Zauważmy, że kolob jest obiektem klasy pochodnej CKolo, która dziedziczy dane i funkcje składowe klasy podstawowej CPunkt. sposób wykorzystania zaprzyjaźnionych funkcji operatorowych wstawiania do strumienia << cout << "Punkt A: " << punkta << endl; cout << "Kolo B: " << kolob << endl << endl; Wypisując obiekty klasy podstawowej i pochodnej wykorzystujemy odpowiednie zaprzyjaźnione funkcje operatorowe zaimplemetowane zarówno w klasie CPunkt jak i w klasie CKolo. "traktowanie kola jako punktu" (w wyniku takiej operacji 'widzimy' jedynie tą cześć danych i funkcji składowych, która należy do klasy podstawowej) a) Przypisanie adresu obiektu kolob wskaźnikowi ptrpunkt. W przypadku dziedziczenia publicznego zawsze możliwe jest przypisanie wskaźnikowi klasy podstawowej CPunkt wskaźnika klasy pochodnej CKolo. Operacja taka jest dozwolona, gdyż obiekt klasy pochodnej CKolo jest jednocześnie obiektem klasy podstawowej CPunkt. Jednak wskaźnik do klasy podstawowej CPunkt 'widzi' wyłącznie tę część obiektu klasy pochodnej CKolo, która znalazła się w nim w wyniku dziedziczenia z klasy podstawowej. Wykonana jest przez kompilator niejawna konwersja wskaźnika do klasy pochodnej CKolo na wskaźnik do klasy podstawowej CPunkt. b) cout << "Kolo B (poprzez *ptrpunkt): " << *ptrpunkt << endl << endl; Wykonanie operacji wypisania obiektu kolob z wykorzystaniem do tego celu wskaźnika ptrpunkt spowoduje, że zobaczymy na ekranie jedynie informację o współrzędnych środka koła. "traktowanie koła jako koła" (z wykorzystaniem operacji rzutowania) a) Przypisanie adresu obiektu kolob wskaźnikowi ptrpunkt. b) Rzutowanie wskaźnika klasy podstawowej CPunkt na wskaznik klasy pochodnej CKolo. c) cout << "Kolo B (przez *ptrkolo): " << *ptrkolo << endl; cout << "Powierzchnia kola B (przez ptrkolo): " << ptrkolo->obliczobszar() << endl << endl; W wyniku wykonania powyższych instrukcji wypisane zostaną wszystkie informacje dotyczące obiektu kolob (wywołana zostanie funkcja operatorowa przeciążona w klasie CKolo) oraz wypisane zostanie pole koła reprezentowanego przez obiekt kolob (czyli wywołana zostanie właściwa funkcja obliczająca pole koła zaimplementowana w klasie CKolo). "traktowanie punktu jako koła" (niebezpieczna operacja) a) ptrpunkt = &punkta; Przypisanie adresu obiektu punkta wskaźnikowi ptrpunkt. b) Przypisanie adresu punktu (tj. adresu znajdującego się w zmiennej wskaźnikowej ptrpunkt) czyli wykonanie operacji rzutowania wskaźnika klasy podstawowej CPunkt na wskaźnik klasy pochodnej CKolo. Formalnie nie istnieje bezpośrednia możliwość przypisania wskaźnikowi klasy pochodnej CKolo wskaźnika do klasy 5
6 podstawowej CPunkt. Przypisanie takie jest bardzo niebezpieczne. W tym przypadku kompilator nie przeprowadza konwersji typów. c) cout << "Punkt A (poprzez *ptrkolo): " << *ptrkolo << endl; cout << "Powierzchnia obiektu ptrkolo: " << ptrkolo->obliczobszar() << endl << endl; W pierwszej z powyższych instrukcji mamy do czynienia z próbą wypisania obiektu punkta klasy CPunkt za pomocą przeciążonego w klasie CKolo operatora << oraz zdereferowanego wskaźnika ptrkolo. W takiej sytuacji promień R ma wartość 0 lub przyjmuje pewną bliżej niezdefiniowaną wartość znajdującą się w pamięci pod adresem, który powinien zawierać daną składową R. Dzieje się tak dlatego, że składowa R w tym przypadku nie istnieje (wskaźnik ptrkolo wskazuje bowiem na obiekt klasy CPunkt). Podobnie w drugiej instrukcji, wykorzystujemy wskaźnik ptrkolo (wskazujący w rzeczywistości na obiekt klasy CPunkt) do obliczenia pola obszaru koła. Wyznaczona powierzchnia ma wartość 0 lub inną wartość niezdefiniowaną, gdyż do stosownych obliczeń użyto nieokreśloną bliżej wartość promienia R. Co więcej należy pamiętać, że wywołanie w programie nie istniejącej funkcji składowej klasy (w tym przypadku funkcji, która nie istnieje w klasie CPunkt) może spowodować zakończenie działania programu i wyświetlenie komunikatu o błędzie. Zadanie 2 Cześć A: Implementacja klas. Napisać program umożliwiający tworzenie oraz dalsze wykorzystanie obiektów dwóch klas: COsoba oraz CPracownik. Klasą bazową jest klasa COsoba. W klasie tej przewidziane są chronione dane składowe: nazwisko (typu string) oraz wiek (typu int; wiek osoby powinien być z zakresu od 0 do 120). W klasie powinien zostać zdefiniowany konstruktor domyślny, który umożliwia również nadanie pewnych domyślnych wartości danym składowym klasy (nazwisko = "", wiek = 0). Wykorzystuje on odpowiednie funkcje dostępowe Set zdefiniowane w obiekcie (funkcje te nadają wartości danym składowym w klasie oraz sprawdzają poprawność zaproponowanych przez użytkownika danych). Ponadto w klasie powinny zostać zdefiniowane funkcje dostępowe Get (określone jako funkcje stałe), funkcja stała Drukuj wyświetlająca informacje o osobie na ekranie oraz działający w podobny sposób przeciążony operator wstawiania do strumienia <<. Drugą klasą jest klasa CPracownik, która dziedziczy dane i funkcje składowe klasy COsoba. Co więcej w klasie tej przewidziana jest prywatna dana składowa: zarobek_mies (typu int; zarobek pracownika podany w walucie PLN powinien być z zakresu od 0 do 5000). W klasie CPracownik powinien się znaleźć również odpowiednio: konstruktor domyślny, który umożliwia również nadanie pewnych domyślne wartości danym składowym klasy (nazwisko = "", wiek = 0, zarobek_mies = 0), funkcje Set, stałe funkcje Get, stała funkcja Drukuj wyświetlająca informacje o pracowniku na ekranie oraz działający w podobny sposób przeciążony operator wstawiania do strumienia <<. Dodatkowo w klasie powinna zostać zdefiniowana funkcja składowa Dochod_Roczny. Zadaniem funkcji jest przekazywanie do programu (przez return) rocznego dochodu uzyskanego przez pracownika (12 x zarobek_mies). Cześć B: Zadania testowe w programie. 1) Zadeklaruj w programie obiekt osobaa typu COsoba (przyjmujemy, że dane o osobie będą określone w dalszej części programu) oraz obiekt praca typu CPracownik (dane o pracowniku nadane zostaną przy tworzeniu obiektu). 2) Nadaj wartości danym obiektu osobaa wykorzystując do tego funkcje dostępowe Set. 3) Wypisz na ekranie dane o osobie osobaa wykorzystując do tego funkcję Drukuj oraz dane o pracowniku praca wykorzystując do tego przeciążony operator <<. 4) Zadeklaruj wskaźnik ptrosoba do typu COsoba oraz ptrpracownik do typu CPracownik. 5) Przypisz adres obiektu osobaa dla wskaźnika ptrosoba oraz adres obiektu praca dla wskaźnika ptrpracownik. 6) Wypisz na ekranie dane o osobie osobaa oraz pracowniku praca wykorzystując do tego funkcję Drukuj oraz wskaźniki ptrosoba i ptrpracownik. 7) Zadeklaruj wskaźnik ptr1 do typu COsoba i zainicjuj go adresem obiektu praca. 8) Wypisz na ekranie informacje o pracowniku praca wykorzystując do tego przeciążony operator << oraz zdereferowany wskaźnik ptr1. 9) Zadeklaruj wskaźnik ptr2 do typu COsoba i zainicjuj go adresem obiektu praca. 10) Zadeklaruj wskaźnik ptr3 do typu CPracownik. 11) Wykonaj operację rzutowania wskaźnika ptr2 do klasy COsoba na wskaźnik ptr3 klasy CPracownik. 12) Wykorzystując operator << oraz zdereferowany wskaźnik ptr3 wypisz na ekranie informacje o pracowniku praca. 13) Przypisz adres ptrosoba dla wskaźnika ptr2. 14) Wykonaj operację rzutowania wskaźnika ptr2 na wskaźnik ptrpracownik. 15) Wykorzystując operator << oraz wskaźnik ptrpracownik wypisz na ekranie informacje o pracowniku. 6
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ółowoWykład 8: klasy cz. 4
Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD
Bardziej szczegółowoDziedziczenie jednobazowe, poliformizm
Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie jednobazowe 2. Polimorfizm część pierwsza 3. Polimorfizm część druga Zofia Kruczkiewicz, ETE8305_6 1 Dziedziczenie jednobazowe, poliformizm 1. Dziedziczenie
Bardziej szczegółowoProgramowanie 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ółowoInformacje ogólne. Karol Trybulec p-programowanie.pl 1. 2 // cialo klasy. class osoba { string imie; string nazwisko; int wiek; int wzrost;
Klasy w C++ są bardzo ważnym narzędziem w rękach programisty. Klasy są fundamentem programowania obiektowego. Z pomocą klas będziesz mógł tworzyć lepszy kod, a co najważniejsze będzie on bardzo dobrze
Bardziej szczegółowoProgramowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
Bardziej szczegółowoObiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.
Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody
Bardziej szczegółowoProgramowanie w C++ Wykład 14. Katarzyna Grzelak. 3 czerwca K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 14 Katarzyna Grzelak 3 czerwca 2019 K.Grzelak (Wykład 14) Programowanie w C++ 1 / 27 Na ostatnim wykładzie: Konstruktor standardowy (domyślny) to taki, który nie ma żadnych argumentów
Bardziej szczegółowoEnkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na
Bardziej szczegółowoDo czego służą klasy?
KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać
Bardziej szczegółowoProgramowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska
Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego Iwona Kochaoska Programowanie Obiektowe Programowanie obiektowe (ang. object-oriented programming) - metodyka tworzenia programów komputerowych,
Bardziej szczegółowoWykład 5: Klasy cz. 3
Programowanie obiektowe Wykład 5: cz. 3 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD - podstawy Konstruktor i destruktor (część I) 2 Konstruktor i destruktor KONSTRUKTOR Dla przykładu
Bardziej szczegółowoIMIĘ 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ółowoInformatyka 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ółowoPodstawy 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ółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoKurs 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ółowoWprowadzenie 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ółowoPARADYGMATY 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ółowoWprowadzenie 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ółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoWstęp do programowania obiektowego. WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this
Wstęp do programowania obiektowego WYKŁAD 3 Dziedziczenie Pola i funkcje statyczne Funkcje zaprzyjaźnione, this 1 Nazwa typu Rozmiar Zakres Uwagi bool 1 bit wartości true albo false stdbool.h TYPY ZNAKOWE
Bardziej szczegółowo2.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ółowoDziedziczenie. 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ółowoPARADYGMATY 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ółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegółowoclass Student Deklaracja klasy Osoba: Deklaracja klasy Student:
Osoba Student Będziemy mieli 2 klasy: Osoba, dla której zapamiętamy dane takie jak: imie, nazwisko i wiek Oraz klasę Student, w której będziemy też dodatkowo pamiętać kierunek studiów. Deklaracja klasy
Bardziej szczegółowoProgramowanie w C++ Wykład 13. Katarzyna Grzelak. 4 czerwca K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26
Programowanie w C++ Wykład 13 Katarzyna Grzelak 4 czerwca 2018 K.Grzelak (Wykład 13) Programowanie w C++ 1 / 26 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoJę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ółowodr 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ółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoJę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ółowoJęzyk C++ umożliwia przeciążanie operatora, tzn. zmianę jego znaczenia na potrzeby danej klasy. W tym celu definiujemy funkcję o nazwie:
Rozdział 10 Przeciążanie operatorów 10.1 Definicje Język C++ umożliwia przeciążanie operatora, tzn. zmianę jego znaczenia na potrzeby danej klasy. W tym celu definiujemy funkcję o nazwie: operator op gdzie
Bardziej szczegółowoC++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.
C++ - DZIEDZICZENIE Do najważniejszych cech języka C++ należy możliwość wielokrotnego wykorzystywania kodu Prymitywnym, ale skutecznym sposobem jest kompozycja: deklarowanie obiektów wewnątrz innych klas,
Bardziej szczegółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - dziedziczenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 W ramach poprzedniego laboratorium
Bardziej szczegółowoProgramowanie obiektowe Wykład 7. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/20 Relacja ma Przykłady relacji typu ma : Student ma nazwisko Wielokąt ma wierzchołki (punkty) Stos ma elementy Dla obiektów
Bardziej szczegółowoPolimorfizm. dr Jarosław Skaruz
Polimorfizm dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com O czym będzie? finalne składowe klasy abstrakcyjne interfejsy polimorfizm Finalne składowe Domyślnie wszystkie pola i metody
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.
Bardziej szczegółowoProgramowanie 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ółowoDo czego służą klasy?
KLASY Dorota Pylak 2 Do czego służą klasy? W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można wykonywać
Bardziej szczegółowoJęzyk C++ zajęcia nr 2
Język C++ zajęcia nr 2 Inicjalizacja Definiowanie obiektu może być połączone z nadaniem mu wartości początkowej za pomocą inicjalizatora, który umieszczany jest po deklaratorze obiektu. W języku C++ inicjalizator
Bardziej szczegółowoAbstrakcyjny 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ółowoDziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.
Dziedziczenie Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasy Student oraz Pracownik: class Student class Pracownik
Bardziej szczegółowoProgramowanie obiektowe
Laboratorium z przedmiotu - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia. Wprowadzenie teoretyczne.
Bardziej szczegółowoKLASY cz.1. Dorota Pylak
KLASY cz.1 Dorota Pylak Do czego służą klasy? 2 W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można
Bardziej szczegółowoDziedziczenie. dr Jarosław Skaruz
Dziedziczenie dr Jarosław Skaruz http://jareks.ii.uph.edu.pl jaroslaw@skaruz.com Dziedziczenie specjalizacja Dziedziczenie generalizacja Generalizacja-specjalizacja jest takim związkiem pomiędzy klasami,
Bardziej szczegółowoKlasa 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ółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegółowoPolimorfizm, 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ółowoKlasy 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ółoworeferencje Wykład 2. Programowanie (język C++) Referencje (1) int Num = 50; zdefiniowano zmienną Num (typu int) nadając jej wartość początkową 50.
Programowanie (język C++) referencje Wykład 2. Referencje (1) Referencja (odnośnik) jest zmienną identyfikującą inną zmienną. Wykonanie operacji na referencji ma taki sam skutek, jak wykonanie tejŝe operacji
Bardziej szczegółowoWykł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ółowoC++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów. C++ - przeciążanie operatorów
Operatory są elementami języka C++. Istnieje zasada, że z elementami języka, takimi jak np. słowa kluczowe, nie można dokonywać żadnych zmian, przeciążeń, itp. PRZECIĄŻANIE OPERATORÓW Ale dla operatorów
Bardziej szczegółowoJava - 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ółowoZaawansowane 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ółowoWykł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ółowoMateriały do zajęć VII
Spis treści I. Klasy Materiały do zajęć VII II. III. Konstruktor Właściwości i indeksatory Klasy Programowanie obiektowe wiadomości wstępne Paradygmat programowania obiektowego Abstrakcja Hermetyzacja
Bardziej szczegółowoProgramowanie, 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ółowoDariusz 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ółowoRozdział 4 KLASY, OBIEKTY, METODY
Rozdział 4 KLASY, OBIEKTY, METODY Java jest językiem w pełni zorientowanym obiektowo. Wszystkie elementy opisujące dane, za wyjątkiem zmiennych prostych są obiektami. Sam program też jest obiektem pewnej
Bardziej szczegółowoObszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),
Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoPARADYGMATY 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ółowoProgramowanie 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ółowoC++ - [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ółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 28 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 12 Katarzyna Grzelak 28 maja 2018 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 27 Klasy cd K.Grzelak (Wykład 12) Programowanie w C++ 2 / 27 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoJęzyk C++ wykład VI. uzupełnienie notatek: dr Jerzy Białkowski. Programowanie C/C++ Język C++ wykład VI. dr Jarosław Mederski.
- - uzupełnienie notatek: dr Jerzy Białkowski - - 1-2 - - - 1 #include 2 #include 3 # include 4 using namespace std ; 5 6 class Punkt { 7 8 private : 9 double
Bardziej szczegółowoKonstruktor 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ółowoSkł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ółowoTechnologie 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ółowoInterfejsy. Programowanie obiektowe. Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Programowanie obiektowe Interfejsy Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Interfejsy Autor: Paweł Rogaliński Instytut Informatyki,
Bardziej szczegółowoProgramowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h
Programowanie II Lista 3 Modyfikatory dostępu plik TKLientBanku.h plik z funkcją main Przyjaźń Dziedziczenie Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to
Bardziej szczegółowoPROGRAMOWANIE 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ółowoProgramowanie w C++ Wykład 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 11 Katarzyna Grzelak 13 maja 2019 K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30 Klasy cd K.Grzelak (Wykład 11) Programowanie w C++ 2 / 30 Klasy - powtórzenie Klasy typy definiowane
Bardziej szczegółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoZaawansowane 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ółowoProgramowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody
Programowanie Obiektowo Zorientowane w języku C++ Klasy, pola, metody Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej
Bardziej szczegółowoW2 Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy :
Wprowadzenie do klas C++ Klasa najważniejsze pojęcie C++. To jest mechanizm do tworzenia obiektów. Deklaracje klasy : class nazwa_klasy prywatne dane i funkcje public: publiczne dane i funkcje lista_obiektów;
Bardziej szczegółowoProgramowanie 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ółowoPola i metody statyczne. Klasy zawierające pola i metody statyczne
Instrukcja laboratoryjna nr 1 Programowanie w języku C 2 (C++ poziom zaawansowany) Pola i metody statyczne. Klasy zawierające pola i metody statyczne dr inż. Kaczmarek Tomasz mgr inż. Lasota Maciej dr
Bardziej szczegółowoKurs 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ółowoKonstruktory. Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut.
Konstruktory Streszczenie Celem wykładu jest zaprezentowanie konstruktorów w Javie, syntaktyki oraz zalet ich stosowania. Czas wykładu 45 minut. Rozpatrzmy przykład przedstawiający klasę Prostokat: class
Bardziej szczegółowoDefiniowanie własnych klas
Programowanie obiektowe Definiowanie własnych klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski @ pwr.wroc.pl Definiowanie własnych klas Autor:
Bardziej szczegółowoDziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java:
Dziedziczenie Dana jest klasa Punkt w pliku o nazwie Punkt.java: p u b l i c c l a s s Punkt { i n t x, y ; Punkt ( ) { x = 1 ; y = 1 ; Punkt ( i n t wspx, i n t wspy ) { x = wspx ; y = wspy ; Punkt (
Bardziej szczegółowoFunkcje przeciążone, konstruktory kopiujące, argumenty domyślne
Funkcje przeciążone, konstruktory kopiujące, argumenty domyślne Przeciążenie funkcji polega na użyciu funkcji z tą samą nazwą, które mają różne listy argumentów(różne typy, różna ilość lub to i inne).
Bardziej szczegółowoInformatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie obiektowe
Programowanie obiektowe IV. Interfejsy i klasy wewnętrzne Małgorzata Prolejko OBI JA16Z03 Plan Właściwości interfejsów. Interfejsy a klasy abstrakcyjne. Klonowanie obiektów. Klasy wewnętrzne. Dostęp do
Bardziej szczegółowoProgramowanie 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ółowoProgramowanie obiektowe w języku C++ dr inż. Jarosław Forenc
Rok akademicki 2016/2017, Wykład nr 4 2/45 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017
Bardziej szczegółowoProgramowanie w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32
Programowanie w C++ Wykład 12 Katarzyna Grzelak 20 maja 2019 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoEGZAMIN 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ółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
Bardziej szczegółowoProgramowanie obiektowe Wykład 3. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/21 Przydzielanie pamięci Poniżej przedstawiono w C++ dwie klasy obrazujące sposób rezerwacji pamięci. class Osoba char imie[30];
Bardziej szczegółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU
Inicjalizacja agregatowa zmiennej tablicowej int a[5] = 1,2,3,4,5 INNE SPOSOBY INICJALIZACJI SKŁADOWYCH OBIEKTU Struktury są również agregatami, dlatego: struct X double f; char c; X x1 = 1, 2.2, 'c' Ale
Bardziej szczegółowoWykł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ółowoSzablony klas, zastosowanie szablonów w programach
Szablony klas, zastosowanie szablonów w programach 1. Szablony klas i funkcji 2. Szablon klasy obsługującej uniwersalną tablicę wskaźników 3. Zastosowanie metody zwracającej przez return referencję do
Bardziej szczegółowo