2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy
|
|
- Fabian Pluta
- 8 lat temu
- Przeglądów:
Transkrypt
1 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ć program np. na grę komputerową. Dlatego powoli będziemy wprowadzać na kolejnych przykładach nowe możliwości definiowania klas. Jedną z takich możliwości jest własność dziedziczenia klas. Wyobraźmy sobie że definiujemy najpierw klasę bazową (rodzicielską) definiującą pewne ogólne własności zagadnienia a dopiero potem klasy pochodne dziedziczące pewne cechy po klasie bazowej. Na przykład w kodzie programu poniżej mamy dwie różne klasy bazowe figura i PaletaKolorow i jedną klasę pochodną kwadrat. W klasie figura są tylko ogólne cechy figury: liczba punktów N i liczba boków Nbokow. Klasa która po niej dziedziczy to klasa kwadrat i ma ona bezpośredni dostęp do pól protected klasy figura i pól publicznych ale nie ma dostępu do pól private. Do pól prywatnych dostęp jest wyłącznie poprzez metody z sekcji publicznej. Pola protected są traktowane jak pola private dla obiektów innych klas które nie dziedziczą. Poniżej mamy wydruk kodu programu figury.cc z komentarzami. W poniższym programie zauwazymy trzeci rodzaj praw dostępu do pól klasy, tzw. pola protected. Mają one sens pól prywatnych ale dostepnych dla klas pochodnych tj. dziedziczących po klasie bazowej. 1 include iostream > 2 3 using namespace std ; 4 5 class f i g u r a // k l a s a bazowa ( r o d z i c i e l s k a ) 6 protected : // t u t a j s e k c j a p r o t e c t e d tak jak prywatna 7 // a l e d l a k l a s y k t o r a d z i e d z i c z y po k l a s i e f i g u r a j e s t dostepna 8 int N; // l i c z b a wezlow 9 private : // t u a j nawet k l a s a k t o r a d z i e d z i c z y po k l a s i e f i g u r a nie ma 10 // wstepu i n a c z e j 11 // n i z poprzez metody z s e k c j i p u b l i c z n e j 12 int Nbokow ; // l i c z b a bokow 13 public : 14 f i g u r a ( int n ) N=n ; Nbokow=n ; } // k o n s t r u k t o r 15 f i g u r a ( ) } // d e s t r u k t o r int LiczbaWezlow ( ) return N; } // zwraca l i c z b e wezlow f i g u r y void PokazNaEkranieWartoscZmiennejNbokow ( ) 20 cout Liczab bokow Nbokow= Nbokow endl ; // pokazuje na e k r a n i e 21 // l i c z b e bokow 22 } } ; //pamietamy o s r e d n i k u class PaletaKolorow // t u t a j k l a s a zawiera t y l k o pola p u b l i c z n e 28 protected : int k o l o r ; // dostep t y l k o d l a k l a s d z i e d z i c z a c y c h po k l a s i e 31 // PaletaKolorow public : 34 void WpiszKolor ( ) cout Wybierz liczbe calkowita sposrod Bialy (0), Czerwony (1), Niebieski (2). ; M R Dudek dla < OW K > owk if uz zgora pl 45 Materiał dystrybuowany bezpłatnie
2 37 cin>>k o l o r ; // zmienna k o l o r j e s t j u z zdefiniowana w k l a s i e PaletaKolorow while ( kolor 0 k o l o r >2) 40 cout Blad...Wybierz ponownie ; 41 cout liczbe calkowita sposrod Bialy (0), Czerwony (1), Niebieski (2). ; 42 cin>>k o l o r ; // zmienna k o l o r j e s t j u z zdefiniowana w k l a s i e PaletaKolorow } 45 } void PodajJakiKolor ( ) 48 cout Kolor kwadratu to kolor kolor endl ; 49 } } ; //pamietamy o s r e d n i k u class kwadrat : public f i g u r a, public PaletaKolorow //po dwukropku o d d z i e l o n e 54 // przecinkami nazwy k l a s po k t o r y c h 55 // k l a s a kwadrat d z i e d z i c z y, t u t a j po k l a s i e f i g u r a i 56 //po k l a s i e PaletaKolorow 57 // slowo p u b l i c oznacza ze k l a s a kwadrat nie ma dostepu 58 //do prywatnych skladowych 59 // k l a s f i g u r a i PaletaKolorow 60 //Ma natomiast dostep do p o l typu p r o t e c t e d public : kwadrat ( int k ) : f i g u r a ( k ), PaletaKolorow () } // k o n s t r u k t o r k l a s y kwadrat 66 // musi uwzglednic k o n s t r u k t o r y obu k l a s a l e 67 // poniewaz w przypadku k l a s y PaletaKolorow 68 // k o n s t r u k t o r j e s t domyslny to nie musimy go p i s a c 69 // i mozna b y l o b y z o s t a w i c kwadrat ( i n t k ) : f i g u r a ( k ) } void PokazNaEkranieWartoscZmiennejN ( ) 72 cout Liczba wezlow N= N endl ; //mamy dostep do pola N 73 // z k l a s y f i g u r a 74 } } ; int main ( ) 79 kwadrat A( 4 ) ; // wartosc 4 b e d z i e oznacza 4 wezly A. WpiszKolor ( ) ; // wpisujemy k o l o r kwadratu poprzez metode z 82 // k l a s y PaletaKolorow A. PodajJakiKolor ( ) ; // metoda z k l a s y PaletaKolorow A. PokazNaEkranieWartoscZmiennejN ( ) ; // t u t a j dostep do pola p r o t e c t e d 87 // j e s t mozliwy 88 A. PokazNaEkranieWartoscZmiennejNbokow ( ) ; // t u t a j dostep do pola p r i v a t e 89 // t y l k o p r z e z 90 // metode p u b l i c z n a z k l a s y f i g u r a 91 return 0 ; 92 } M R Dudek dla < OW K > owk if uz zgora pl 46 Materiał dystrybuowany bezpłatnie
3 Kolejny przykład pokazuje że korzystanie z dziedziczenia klas może powodować różnego rodzaju błędy np. błędy jednoznaczności przy wywoływaniu metod. Komentarze w poniższym programie dziedziczenie konflikt.cc powinny pomóc zrozumieć te niuanse. 1 2 // p r z y k l a d z d z i e d z i c z e n i e m z dwoch k l a s bazowych 3 // Bazowa1 i Bazowa2 4 // Przyklad z k o n f l i k t e m przy uzyciu t e j samej nazwy metody 5 include iostream > 6 include c s t d l i b > 7 8 using namespace std ; 9 10 // 11 //DEFINICJA KLASY Bazowa1 12 // 13 class Bazowa protected : // p o l e dostepne rowniez d l a metod z k l a s pochodnych 16 char znak ; 17 public : double a ; 20 Bazowa1 ( char z ) znak= z ; } void wypisz znak ( ) cout Bazowa1: znak endl ; } } ; // nie zapominamy o s r e d n i k u 25 // 26 // Koniec d e f i n i c j i d l a k l a s y Bazowa1 27 // class Bazowa protected : // p o l e dostepne rowniez d l a metod z k l a s pochodnych 33 char znak ; 34 public : double a ; 37 Bazowa2 ( double aa ) 38 a=aa ; 39 znak= x ; 40 } void wypisz znak ( ) cout Bazowa2: znak t a endl ; } } ; 45 // 46 // Koniec d e f i n i c j i d l a k l a s y Bazowa2 47 // // 50 //DEFINICJA KLASY Pochodna DZIEDZICZACEJ PO KLASIE Bazowa1 i Bazowa2 51 // class Pochodna : public Bazowa1, public Bazowa2 M R Dudek dla < OW K > owk if uz zgora pl 47 Materiał dystrybuowany bezpłatnie
4 54 55 private : 56 int k ; 57 double b ; 58 char ZNAK; 59 public : 60 Pochodna ( char z, double q ) : Bazowa1 ( z ), Bazowa2 ( q ) 61 k=a t o i ( z ) ; // zamiana znaku na l i c z b e c a l k o w i t a 62 ZNAK= z ; 63 } void Wypisz k ( ) // metoda 66 cout znak ZNAK t k endl ; 67 } } ; // s r e d n i k int main ( ) char znak=new char ; // a l o k a c j a dynamiczna zmiennej znak znak= a ; // p r z y p i s a n i e zmiennej znaku a Pochodna R( znak, ) ; // powolujemy o b i e k t R; R. Wypisz k ( ) ; //R. w y p i s z z n a k ( ) ; // uruchamienie metody wypisz z n ak ( ) 83 // spowoduje komunikat b l e d u R. Bazowa1 : : wypisz znak ( ) ; // t u t a j podwojnym dwukropkiem 87 // wskazujemy z j a k i e j k l a s y metoda 88 R. Bazowa2 : : wypisz znak ( ) ; // Podobnie b l a d powoduje proba wydruku w a r t o s c i pola double d l a 91 // zmiennej a // cout R. a endl ; // t e r a z b e d z i e o. k. 96 cout R. Bazowa2 : : a endl ; return 0 ; 100 } Konflikty wynikające z niejednoznaczności dostępu do składowych klasy nie są jedynym problemem. Zauważmy, że przy dziedziczeniu wielobazowym będzie dochodzić do niepotrzebnego wielokrotnego włączania pól klasy bazowej do klasy pochodnej. Widać to np. z poniższego diagramu. M R Dudek dla < OW K > owk if uz zgora pl 48 Materiał dystrybuowany bezpłatnie
5 Rysunek 9: Przykład wielokrotnego włączania pól klasy bazowej. Pole X zajmuje 8 bajtów, pole Y 8 bajtów. Podwójne dziedziczenie pola X przez klasę PochodnaPochodnych powoduje, że zajmuje ona pamięć 24 bajtów. Przykładem dla tego schematu jest kod programu dziedziczwielokrot.cc gdzie do pokazania pojemności klas użyta została funkcja systemowa sizeof(). Nazwy klas są jak na schemacie. Zauważmy że pojemność klasy określają pojemności zadeklarowanych zmiennych a nie metody. 1 include iostream > 2 3 using namespace std ; 4 5 class Bazowa1 // k l a s a bazowa protected : 8 double X; 9 public : 10 Bazowa1 ( ) X=1.0;} 11 double WartoscPolaX ( ) return X; } M R Dudek dla < OW K > owk if uz zgora pl 49 Materiał dystrybuowany bezpłatnie
6 12 } ; class Bazowa2 // k l a s a bazowa protected : 17 double Y; 18 public : 19 Bazowa2 ( ) Y=2.0;} 20 double WartoscPolaY ( ) return Y; } 21 } ; c l a s s Pochodna1 : public Bazowa1, public Bazowa2 24 // k l a s a Pochodna 1 d z i e d z i c z y po dwoch k l a s a c h Bazowa1 i Bazowa public : 27 double WartoscPolaX ( ) return X; } 28 double WartoscPolaY ( ) return Y; } 29 } ; c l a s s Pochodna2 : public Bazowa1 32 // k l a s a Pochodna 2 d z i e d z i c z y po k l a s i e Bazowa public : 35 double WartoscPolaX ( ) return X; } 36 } ; class PochodnaPochodnych : public Pochodna1, public Pochodna2 39 // double WartoscPolaX () return X; } //uwaga komentarz bo j e s t 40 // k o n f l i k t j e d n o z n a c z n o s c i 41 // z k t o r e g o pola odczytac wartosc X 42 double WartoscPolaY ( ) return Y; } // t u t a j nie ma k o n f l u k t u } ; int main ( ) Bazowa1 B1 ; // o b i e k t Bazowa1 ; 49 Bazowa2 B2 ; // o b i e k t Bazowa cout Obiekt B1 zajmuje sizeof ( Bazowa1) bajtow pamieci endl ; 52 // metody n i e zajmuja pamieci 53 // moze wiec byc i c h duzo 54 cout Obiekt B2 zajmuje sizeof ( Bazowa2) bajtow pamieci endl ; PochodnaPochodnych A; // o b i e k t A d z i e d z i c z y dwukrotnie p o l e X 57 // i raz p o l e Y 58 cout Obiekt A zajmuje sizeof ( PochodnaPochodnych) bajtow pamieci endl ; return 0 ; 62 } Aby uniknąć powtarzania włączania pól klasy bazowej do klas pochodnych wprowadzone zostało dziedziczenie wirtualne. Pola klasy wirtualnej są włączane do klasy pochodnej jeden raz - nie ma konfliktu. To że klasa dziedziczona jest wirtualnie zaznacza się słowem kluczowym virtual. Poniższy program pokazuje brak konfliktu w dostępie do tych samych składowych klasy jeśli M R Dudek dla < OW K > owk if uz zgora pl 50 Materiał dystrybuowany bezpłatnie
7 klasa po której się dziedziczy jest włączana jako klasa wirtualna. 1 include iostream > 2 3 using namespace std ; 4 5 class Bazowa1 // k l a s a bazowa protected : 8 double X; 9 public : 10 Bazowa1 ( ) X=1.0;} 11 double WartoscPolaX ( ) return X; } 12 } ; class Bazowa2 // k l a s a bazowa protected : 17 double Y; 18 public : 19 Bazowa2 ( ) Y=2.0;} 20 double WartoscPolaY ( ) return Y; } 21 } ; c l a s s Pochodna1 : virtual public Bazowa1, public Bazowa2 24 // k l a s a Pochodna 1 d z i e d z i c z y po dwoch k l a s a c h Bazowa1 i Bazowa2 25 // t u t a j dostep do k l a s y Bazowa1 jako do k l a s y w i r t u a l n e j pojawia 26 // s i e slowo kluczowe v i r t u a l public : 29 double WartoscPolaX ( ) return X; } 30 double WartoscPolaY ( ) return Y; } 31 } ; c l a s s Pochodna2 : virtual public Bazowa1 34 // k l a s a Pochodna 2 d z i e d z i c z y po k l a s i e Bazowa1 35 // t u t a j dostep do k l a s y Bazowa1 jako do k l a s y w i r t u a l n e j public : 39 double WartoscPolaX ( ) return X; } 40 } ; class PochodnaPochodnych : public Pochodna1, public Pochodna2 43 double WartoscPolaX ( ) return X; } //uwaga NIE MA k o n f l i k t u 44 // j e d n o z n a c z n o s c i 45 // z k t o r e g o pola odczytac wartosc X 46 double WartoscPolaY ( ) return Y; } // t u t a j nie ma k o n f l u k t u } ; int main ( ) Bazowa1 B1 ; // o b i e k t Bazowa1 ; 54 Bazowa2 B2 ; // o b i e k t Bazowa2 55 M R Dudek dla < OW K > owk if uz zgora pl 51 Materiał dystrybuowany bezpłatnie
8 56 cout Obiekt B1 zajmuje sizeof ( Bazowa1) bajtow pamieci endl ; 57 // metody n i e zajmuja pamieci 58 // moze wiec byc i c h duzo 59 cout Obiekt B2 zajmuje sizeof ( Bazowa2) bajtow pamieci endl ; PochodnaPochodnych A; // o b i e k t A d z i e d z i c z y dwukrotnie p o l e X 62 // i raz p o l e Y a l e nie ma k o n f l i k t u z 63 // uzyciem metody WartoscPolaX ( ) 64 cout Obiekt A zajmuje sizeof ( PochodnaPochodnych) bajtow pamieci endl ; return 0 ; 68 } Na zakończenie tego rozdziału podamy jeszcze jeden przykład ale tym razem z funkcjami wirtualnymi. Funkcje wirtualne muszą być tego samego typu i mięć tą samą liczbe i typ argumentów. Klasa w której jest co najmniej jedna funkcja wirtualna jest klasą abstrakcyjną. Dla klasy abstrakcyjnej nie można tworzyć obiektów. Poniżej jest przykład programu z klasą abstrakcyjną. 1 include iostream > 2 3 using namespace std ; 4 5 // 6 // Class name : Klasa Zwierz j e s t k l a s a a b s t r a k c y j n a 7 // to znaczy ze nie mozna tworzyc obiektow 8 // t e j k l a s y, wprowadza s i e ja po to aby d e f i n i o w a c 9 // wspolne metody d l a k l a s pochodnych 10 // D e s c r i p t i o n : 11 // 12 class Zwierz 13 public : 14 virtual void DajGlos ()=0; // oznacza to ze nie i s t n i e j e 15 // t r e s c metody w k l a s i e bazowej Zwierz 16 } ; // 20 // Class name : Kot 21 // 22 // D e s c r i p t i o n : d z i e d z i c z y po k l a s i e Zwierz 23 // 24 class Kot : public Zwierz 25 public : void DajGlos ( ) 28 cout Miau... endl ; 29 } 30 } ; // 34 // Class name : Pies 35 // 36 // D e s c r i p t i o n : d z i e d z i c z y po k l a s i e Zwierz 37 // M R Dudek dla < OW K > owk if uz zgora pl 52 Materiał dystrybuowany bezpłatnie
9 38 class Pies : public Zwierz 39 public : void DajGlos ( ) 42 cout Hau, hau... endl ; 43 } 44 } ; // 48 // Class name : Pchla 49 // 50 // D e s c r i p t i o n : d z i e d z i c z y po k l a s i e Zwierz 51 // 52 class Pchla : public Kot, public Pies 53 public : void DajGlos ( ) 56 cout bez, bez... endl ; 57 } 58 } ; int main ( ) Kot Mruczek ; 63 Mruczek. DajGlos ( ) ; Pies Latek ; 66 Latek. DajGlos ( ) ; Pchla Cyrkowka ; 69 Cyrkowka. DajGlos ( ) ; return 0 ; 72 } M R Dudek dla < OW K > owk if uz zgora pl 53 Materiał dystrybuowany bezpłatnie
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ół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ół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ół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ółowoTEMAT : 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ół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ół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ółowoJę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ółowowykł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ółowoPodstawy języka C++ Maciej Trzebiński. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. Praktyki studenckie na LHC IVedycja,2016r.
M. Trzebiński C++ 1/14 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IVedycja,2016r. IFJ PAN Przygotowanie środowiska pracy Niniejsza
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ółowoDziedziczenie & W slajdach są materiały zapożyczone z https://www.ii.uni.wroc.pl/~prz/2012lato/cpp/slajdy/cpp5.
Dziedziczenie 27.04.2016 & 04.05.2016 W slajdach są materiały zapożyczone z https://www.ii.uni.wroc.pl/~prz/2012lato/cpp/slajdy/cpp5.ppt class A{ private: int x, y; public: void setvaluex(); void setvaluey();
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ół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ół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ółowoPodstawy języka C++ Maciej Trzebiński. Praktyki studenckie na LHC IFJ PAN. Instytut Fizyki Jądrowej Polskiej Akademii Nauk. M. Trzebiński C++ 1/16
M. Trzebiński C++ 1/16 Podstawy języka C++ Maciej Trzebiński Instytut Fizyki Jądrowej Polskiej Akademii Nauk Praktyki studenckie na LHC IFJ PAN 6lipca2015 Uruchomienie maszyny w CC1 M. Trzebiński C++ 2/16
Bardziej szczegółowoPlik klasy. h deklaracje klas
Plik klasy. h deklaracje klas KLASY DLA PRZYKŁADÓW Z POLIMORFIZMEM enum dim r1 = 1, r2, r3; class figura public: static int const maxliczbafigur; = 100; static int liczbafigur; dim rn; rodzaj przestrzeni
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ół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ół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ół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 Przeciążanie operatorów Słowo
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ółowoProgramowanie 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ółowoPrzesłanianie nazw, przestrzenie nazw
Przesłanianie nazw, przestrzenie nazw Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
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ółowoWstęp do programowania obiektowego, wykład 7
Wstęp do programowania obiektowego, wykład 7 Klasy i funkcje abstrakcyjne Przeciążanie funkcji Definiowanie i interpretacja złożonych typów danych w C++ Wskaźniki do funkcji 1 KLASA ABSTRAKCYJNA 2 Klasa
Bardziej szczegółowoProgramowanie w C++ - wybrane przykłady szablonów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ
programowanie w C++ dla OWK Programowanie w C++ - wybrane przykłady szablonów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ 1 Streszczenie W tym rozdziale podamy kilka najprostszych przykładów programów
Bardziej szczegółowoWstęp do programowania
wykład 8 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Podprogramy Czasami wygodnie jest wyodrębnić jakiś fragment programu jako pewną odrębną całość umożliwiają to podprogramy.
Bardziej szczegółowoTechnologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 7 (08.04.2019) Wikipedia Programowanie komputerów proces projektowania, tworzenia, testowania i utrzymywania kodu źródłowego programów
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dziedziczenie Przestrzenie nazw Na podstawie: A.
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ół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ółowoTechnologie cyfrowe semestr letni 2018/2019
Technologie cyfrowe semestr letni 2018/2019 Tomasz Kazimierczuk Wykład 8 (15.04.2019) Kompilacja Kompilacja programu (kodu): proces tłumaczenia kodu napisanego w wybranym języku na kod maszynowy, zrozumiały
Bardziej szczegółowoProgramowanie Obiektowew języku C++ Zadania L8
Programowanie Obiektowew języku C++ Zadania L8 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
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ółowoKurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019
Wykład 3 22 marca 2019 Klasy wewnętrzne Klasa wewnętrzna class A {... class B {... }... } Klasa B jest klasa wewnętrzna w klasie A. Klasa A jest klasa otaczajac a klasy B. Klasy wewnętrzne Właściwości
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ół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ółowoProgramowanie - wykład 4
Programowanie - wykład 4 Filip Sośnicki Wydział Fizyki Uniwersytet Warszawski 20.03.2019 Przypomnienie Prosty program liczący i wyświeltający wartość silni dla wprowadzonej z klawiatury liczby: 1 # include
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 13 1 KLASY A ZASŁANIANIE NAZW Nazwy danych składowych i funkcji składowych mają zakres klasy, więc w obrębie klasy zasłaniają takie same nazwy spoza
Bardziej szczegółowoWstęp do informatyki- wykład 11 Funkcje
1 Wstęp do informatyki- wykład 11 Funkcje 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 Grębosz, Opus magnum
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ółowoWyjątki (exceptions)
Instrukcja laboratoryjna nr 6 Programowanie w języku C 2 (C++ poziom zaawansowany) Wyjątki (exceptions) dr inż. Jacek Wilk-Jakubowski mgr inż. Maciej Lasota dr inż. Tomasz Kaczmarek Wstęp Wyjątki (ang.
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ółowoWstęp do informatyki- wykład 9 Funkcje
1 Wstęp do informatyki- wykład 9 Funkcje 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 Grębosz, Opus magnum
Bardziej szczegółowoProgramowanie Obiektowew języku C++ Zadania L9
Programowanie Obiektowew języku C++ Zadania L9 Mirosław Głowacki 1,2 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra Informatyki
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ółowoProgramowanie 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ółowoPodczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.
Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.
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ół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ółowoWstęp do programowania
wykład 3 Agata Półrola Wydział Matematyki i Informatyki UŁ sem. zimowy 2017/2018 Instrukcja wielokrotnego wyboru Instrukcja wielokrotnego wyboru switch umożliwia podejmowanie decyzji na podstawie wartości
Bardziej szczegółowoProgramowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 13 XII 2011 1 Dziedziczenie Mamy dwa światy: gorszy (rzeczywisty) i lepszy (komputerowy). Lepsiejszość drugiego polega
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ół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ółowoRóżne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY
Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu
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ółowoInformatyka 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ół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ółowoProgramowanie 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ółowopublic: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje
Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja
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ół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ółowoAplikacje w środowisku Java
Aplikacje w środowisku Java Materiały do zajęć laboratoryjnych Klasy i obiekty - wprowadzenie mgr inż. Kamil Zieliński Katolicki Uniwersytet Lubelski Jana Pawła II 2018/2019 Klasa zbiór pól i metod Obiekt
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ółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 6.11.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 6.11.2006 1 / 138 Operator przypisania Jest czym innym niż konstruktor kopiujacy!
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ółowoĆwiczenia podstawowe, zestaw 5, część 1
Ćwiczenia podstawowe, zestaw 5, część 1 1 Napisz zestaw funkcji identyfikujących rodzaj znaku Należy napisać funkcje, pozwalające na identyfikowanie typu znaku przekazanego parametrem. Załóżmy, że tworzymy
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ółowoATD. Wykład 8. Programowanie (język C++) abstrakcyjny typ danych. Abstrakcyjne typy danych (ATD) Metody czysto wirtualne. Definicje i uwagi:
Programowanie (język C++) Wykład 8. ATD abstrakcyjny typ danych Tomasz Marks - Wydział MiNI PW -1- Tomasz Marks - Wydział MiNI PW -2- Metody czysto wirtualne Metody czysto wirtualne otrzymujemy inicjalizując
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ół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ółowoOperator przypisania. Jest czym innym niż konstruktor kopiujący!
Operator przypisania Jest czym innym niż konstruktor kopiujący! Domyślnie jest zdefiniowany jako przypisanie składowa po składowej (zatem niekoniecznie bajt po bajcie). Dla klasy X definiuje się jako X&
Bardziej szczegółowoLaboratorium 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ółowoProgramowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 22 XI 2011 Uwaga! Ponieważ już sobie powiedzieliśmy np. o wskaźnikach i referencjach, przez które nie chcemy przegrzebywać
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ółowoOwad():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ółowoKurs 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ółowoPytania sprawdzające wiedzę z programowania C++
Pytania sprawdzające wiedzę z programowania C++ Wstęp 1. Zaprezentuj mechanikę tworzenia programu napisanego w języku C++. 2. Co to jest kompilacja? 3. Co to jest konsolidacja? 4. Co to jest kod wykonywalny?
Bardziej szczegółowoWstęp do informatyki- wykład 7
1 Wstęp do informatyki- wykład 7 Operatory przypisania, złożone operatory przypisania, Pętla while i do..while Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania.
Bardziej szczegółowoWstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną)
1 Wstęp do informatyki- wykład 12 Funkcje (przekazywanie parametrów przez wartość i zmienną) Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion,
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ół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ółowoProjektowanie 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ółowo1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość
1. Wartość, jaką odczytuje się z obszaru przydzielonego obiektowi to: a) I - wartość b) definicja obiektu c) typ oboektu d) p - wartość 2. Poprawna definicja wskażnika b to: a) float *a, **b = &a; b) float
Bardziej szczegółowoPodstawy informatyki. Elektrotechnika I rok. Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia
Podstawy informatyki Elektrotechnika I rok Język C++ Operacje na danych - wskaźniki Instrukcja do ćwiczenia Katedra Energoelektroniki i Automatyki Systemów Przetwarzania Energii AGH Kraków 2017 Tematyka
Bardziej szczegółowoWskaźnik może wskazywać na jakąś zmienną, strukturę, tablicę a nawet funkcję. Oto podstawowe operatory niezbędne do operowania wskaźnikami:
Wskaźniki są nieodłącznym elementem języka C. W języku C++ także są przydatne i korzystanie z nich ułatwia pracę, jednak w odróżnieniu do C wiele rzeczy da się osiągnąć bez ich użycia. Poprawne operowanie
Bardziej szczegółowoPodstawy programowania w C++
Podstawy programowania w C++ Strumienie wejścia cin>> i wyjścia cout
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ółowoWstę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ółowoListy 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ółowoBiblioteka obiektowa C++ klasa string - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ
programowanie w C++ dla OWK Biblioteka obiektowa C++ klasa string - parę przykładów programów Opracowanie: dr hab. Mirosław R. Dudek, prof. UZ 1 Streszczenie W tym rozdziale podamy kilka najprostszych
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ółowoProgramowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw
Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw 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ółowoInformacja o programowaniu w c++ Dr Maciej Bobrowski
Informacja o programowaniu w c++ Dr Maciej Bobrowski mate@mif.pg.gda.pl 27 kwietnia 2016 CZEGO NAM NA POTRZEBA Napisanie programu: Edytor, na przykład: vi, vim, joe, xedit, pico, notatnik (na przykład
Bardziej szczegółowoProgramowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 10 I 2012 1 Zabronienie kopiowania Czasami nie ma sensu, żeby obiekty pewnego typu były kopiowane z innych obiektów.
Bardziej szczegółowoKLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki
KLASY cz4. destruktory składowe statyczne przeciążanie operatorów Dorota Pylak wskaźniki 2 Klasy - podsumowanie poznanych wiadomości Deklaracja klasy może zawierać pola, konstruktory oraz metody. W deklaracji
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ółowoProgramowanie w C++ Wykład 5. Katarzyna Grzelak. 16 kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27
Programowanie w C++ Wykład 5 Katarzyna Grzelak 16 kwietnia 2018 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 27 Pojęcia z poprzednich wykładów Tablica to ciag obiektów tego samego typu, zajmujacy ciagły
Bardziej szczegółowo