Zaawansowane programowanie w C++ (PCP)
|
|
- Bronisław Szczepaniak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Zaawansowane programowanie w C++ (PCP) Wykład 2 - agregacja i dziedziczenie, polimorfizm. dr inż. Robert Nowak - p. 1/27
2 Powtórzenie strona przedmiotu: rno Powtórzenie: programowanie strukturalne w C++ przestrzenie nazw obiekty automatyczne, statyczne, dynamiczne i tymczasowe klasy autonomiczne, konstruktor, destruktor, konstruktor kopiujacy - p. 2/27
3 Składowe statyczne klas» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Składowa statyczna: zmienna globalna (jedna kopia w programie), nie musi być publicznie dostępna (może być prywatna), obowiazkowo musi być zdefiniowana (i zainicjowana). class Foo { static int fooid;//składowa statyczna public: static int getnewid() { return ++fooid; } //metoda statycz... int Foo::fooId = 0; //Definicja i inicjacja składowej statyczn int newid = Foo::getNewId(); //Wołanie metody statycznej Foo f; f.getnewid(); //Wołanie metody statycznej Stosuj stałe statyczne! static const int SIZE = 40; - p. 3/27
4 Funkcje zaprzyjaźnione» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Dostęp do prywatnych składowych dla funkcji, które nie sa metodami. class Foo {... friend int get(const Foo& f);... private: int i; int get(const Foo& f) { return f.i; } funkcje zaprzyjaźnione sa częścia interfejsu klasy. - p. 4/27
5 Funkcje zaprzyjaźnione (2)» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector można zaprzyjaźnić metodę klasy (a nawet wszystkie metody innej klasy), deklaracja friend może wystapić w dowolnej sekcji, nie tylko metody moga modyfikować prywatne dane - złamanie obiektowego podejścia. Podział kodu: metoda metoda statyczna funkcja zaprzyjaźniona ma dostęp do składowych prywatnych jest w zasięgu klasy, jest wołana dla obiektu (ma wskaźnik this) ma dostęp do składowych prywatnych jest w zasięgu klasy ma dostęp do składowych prywatnych - p. 5/27
6 Operatory - powtórzenie» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector priorytet, łaczność. Oznaczenie Opis :: operator zasięgu. -> dostęp do składowej [] indeksowanie () operator funkcyjny inkr. dekr. pre- i postfiksowa! negacja bitowa, negacja logiczna - + jednoargumentowy + i - & * adres argumentu, wyłuskanie new new[] delete tworzenie i zwalnianie delete[].* ->* dostęp do składowej (przez wskaźnik - p. 6/27
7 Operatory - powtórzenie (2)» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector * / % mnożenie, dzielenie, modulo + - dodawanie, odejmowanie << >> przesuwanie bitowe < <= > >= porównywanie ==!= badanie równości, różności & ˆ iloczyn bitowy suma bitowa && różnica symetryczna (bitowa) iloczyn logiczny suma logiczna? : wyrażenie warunkowe = *= /= %= += -= <<= >>= &= = ˆ= operatory przypisania, operator przecinka - p. 7/27
8 Przeciażanie operatorów» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Następujace wołania sa identyczne dla kompilatora (przykład dla operatora dwuargumentowego) aa bb aa.operator (bb) //Metoda operator (aa,bb) //Funkcja aa + bb aa.operator+(bb) //Metoda operator+(aa,bb) //Funkcja Możliwość definiowania operatorów: dostarczaja wygodna notację dla nowych typów; nie można zdefiniować nowych symboli operatora (np. ** ); nie można użyć innej liczby argumentów. nie można zdefiniować: ::..* tylko wyrażenia zawierajace typy zdefiniowane przez użytkownika używaja przeciażonych operatorów. - p. 8/27
9 Operator =» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Bardzo ważna metoda (tworzy kopię obiektu). 1. usuwa stara zawartość obiektu 2. tworzy nowa zawartość (to samo robi konstruktor kopiujacy) f = f;//przypisanie obiektu samego do siebie a[i] = a[j];//możliwe przypisanie j.w. px = *py;//możliwe przypisanie j.w. Uwaga! Należy się zabezpieczyć przed przypisaniem a=a class Foo { public: Foo& operator=(const Foo& r) { if(&r!= this)//zabezp. przed samo-przypisaniem... return *this;//zawsze powinien zwracać *this } - p. 9/27
10 Metody stałe» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Metody które można wołać dla obiektu const typedef int Element;//Typ elementu przechowywanego na liście class Node { public: const Element& get() const;//mozna wolac dla stalego obiek Element& get(); private: Element element_; const Element& Node::get() const { /* Tutaj implementacja */ return element_; } //Implementacja używa poprzedniej wersji Element& Node::get() { return const_cast<element&>( static_cast<const Node&>(*this).get() ); } - p. 10/27
11 Klasa std::string» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector nagłówek #include <string> inicjacja: string s1; //napis pusty string s2( Ala ); string s3 = Ala ma kota ; porównywanie napisów, operatory ==,!= if(s1 == s2)... if(s2!= string( ABCD ) )... uzyskanie napisu w stylu C : metoda c_str() const char* nap = s2.c_str(); konkatenacja (łaczenie napisów) - operator + string s = s2 + string( Ola ) + s2; badanie długości, podnapisy, wyszukiwanie i wiele innych. - p. 11/27
12 Klasa std::vector» Składowe statyczne klas» Funkcje zaprzyjaźnione» Funkcje zaprzyjaźnione (2)» Operatory - powtórzenie» Operatory - powtórzenie (2)» Przeciażanie operatorów» Operator =» Metody stałe» Klasa std::string» Klasa std::vector Zastępuje (w większości przypadków) tablicę. nagłówek #include <vector> inicjacja vector<int> v; //pusty wektor obiektów int vector<double> v2(3); vector<punkt> v3[2]; //Uwaga! Dostêp do elementu double d = v2[1]; //bez kontroli zakresu int i = v.at(5); //kontrola zakresu Metoda push_back dodaje element na koniec, np. v.push_back(4); Metoda size() zwraca liczbę elementów. Metoda empty() bada, czy kontener nie jest pusty. - p. 12/27
13 Tworzenie nowych klas - interfejs czy agregacja? Wielokrotne wykorzystanie kodu: Wykorzystanie istniejacych klas bez naruszania ich implementacji. Możliwość szybkiej zmiany struktury programu. Umożliwia programowanie przyrostowe. Budowa klas na podstawie już istniejacych: agregacja, dziedziczenie. Język UML (Unified Modeling Language) - diagram klas. - p. 13/27
14 Agregacja Agregacja - relacja typu składa się z lub posiada. - interfejs czy agregacja? Nauczyciel +getname() - imie - nazwisko Przedmiot +getname() - nazwa class Przedmiot { //Definicja klasy class Nauczyciel { //Interfejs private: std::vector<przedmiot*> przedmioty_; //Pozostałe składowe - p. 14/27
15 Kompozycja - interfejs czy agregacja? Szczególny przypadek agregacji: obiekt składowy nie może istnieć bez obiektu głównego. Samochód +getname() - marka - model Silnik +gettype() - rodzaj class Silnik { //Definicja klasy class Samochod { //Interfejs private: Silnik silnik_; //Pozostałe składowe - p. 15/27
16 Po co dziedziczenie? - interfejs czy agregacja? Relacja jest lub może być traktowany jako class Pracownik { //Interfejs klasy private: string imie; string nazwisko; class Kierownik { //Interfejs klasy private: Pracownik prac_; vector<pracownik*> podlegli_; Wady: kompilator nie wie, że Kierownik to także Pracownik - p. 16/27
17 Dziedziczenie Relacja może być traktowany jako, lub jest podtypem. - interfejs czy agregacja? Pracownik +getname() - imie - nazwisko Kierownik +getdepartment() - department klasa bazowa klasa pochodna class Pracownik { //Definicja klasy class Kierownik : public Pracownik { //Definicja klasy Bazowa Pochodna Dziedziczenie wprowadza powiazanie pomiędzy typami. - p. 17/27
18 Agregacja - interfejs - interfejs czy agregacja? Agregacja - należy dostarczyć nowy interfejs. class Silnik { public: void uruchom(); //Definicja klasy cd. class Samochod { public: void uruchomsilnik() { silnik.uruchom(); } //Interfejs cd. private: Silnik silnik_; //Pozostałe składowe - p. 18/27
19 Dziedziczenie - interfejs - interfejs czy agregacja? Dziedziczenie - klasa potomna zachowuje interfejs. class Pracownik { public: std::string imie() const; //Definicja klasy cd. class Kierownik : public Pracownik { //Definicja klasy Kierownik k; k.imie(); Dziedziczenie publiczne (najczęściej stosowane): Metody publiczne klasy bazowej sa publiczne w klasie pochodnej; Metody prywatne klasy bazowej sa prywatne w klasie pochodnej; Istnieje możliwość zmiany działania metod. - p. 19/27
20 Konwersje typów - interfejs czy agregacja? Dziedziczenie: klasa pochodna zawiera obiekt klasy bazowej (wszystkie składowe i metody). Możliwość rzutowania w górę : Pracownik p; Kierownik k; Pracownik* p2 = &k; //OK, można kierownik też jest pracownikie Kierownik* k2 = &p; //BŁĄD!! nie każdy kierownik jest pracowni istnieje możliwość rzutowania wskaźnika(referencji) do klasy pochodnej na wskaźnik (referencję) do klasy bazowej; istnieje możliwość tworzenia obiektu klasy bazowej na podstawie klasy pochodnej; Ale nie odwrotnie! - p. 20/27
21 Konstrukcja i destrukcja - interfejs czy agregacja? Konstrukcja obiektów złożonych: Konstruktor dla klasy bazowej (domyślnie bezparametowy) Konstruktory dla składowych (domyślnie bezparametrowe) Można wołać inne konstruktory - lista inicjatorów konstruktora: dla klas bazowych: nazwa typu, dla klas, które sa składowymi: nazwa składowej. Konstruktory te sa wołane przed rozpoczęciem kodu konstruktora. Destrukcja obiektów złożonych: Destruktor woła (po zakończeniu działania) destruktory dla obiektów składowych oraz dla klas bazowych. Prawie nigdy nie ma potrzeby wołania jawnie destruktorów. - p. 21/27
22 Dziedziczenie czy agregacja? - interfejs czy agregacja? dziedziczenie - relacja typu typ - podtyp; pochodna posiada wszystkie składowe bazowej; nie narusza się mechanizmów ochrony; pochodna może być używana tam, gdzie bazowa (rzutowanie wskaźnika) agregacja - gdy budowa z mniejszych kawałków większej całości; Pracownik +getid() - id - nazwisko Kierownik +liczbapodl() - sekcja - pracownicy agregacja: prostsza kontrola - należy ja faworyzować - p. 22/27
23 Hierarchie klas - interfejs czy agregacja? Figura Trójkąt Prostokąt Koło Złożona Osoba Klient Pracownik class Figura {... class Kolo : public Figura {... class Zlozona : public Figura { private: vector<figura*> sklad_; class Osoba {... class Pracownik : public Osoba {... Specjalista Zarząd Administracja class Specjalista : public Pracownik {... - p. 23/27
24 Wycinanie - interfejs czy agregacja? Działanie konstruktora kopiujacego lub operatora przypisania: class Pracownik {... class Kierownik : public Pracownik {... Kierownik k(...); Pracownik p = k; kopiuje tylko część klasy, źródło niespodzianek i błędów, rozwi azanie: przekazywanie wskaźników lub referencji do obiektów. - p. 24/27
25 Składowe chronione - interfejs czy agregacja? Sekcja protected - dostęp do składowych lub metod dla: metod klasy pochodnej; funkcji zaprzyjaźnionych z klasa pochodna. własne metody metody klasy pochodnej inny kod private protected public class Foo { public: //Interfejs protected: //Składowe i metody dostępne dla klas pochodnych private: //Implementacja - p. 25/27
26 Przedefiniowywanie metod - interfejs czy agregacja? (redefining) w odróżnieniu do nadpisywania (overriding, funkcje wirtualne) class Pracownik { public: void drukuj(ostream& os) const { os << nazwisko: << nazwisko_; } class Kierownik : public Pracownik { public: void drukuj(ostream& os) const { Pracownik::drukuj(os); os << kierownik działu: << dzial_; } przedefiniowywanie: zmiana zachowania metody; jeżeli sygnatury sa różne - zmiana interfejsu, wskazuje na bład projektowy. - p. 26/27
27 Zakrywanie - interfejs czy agregacja? class Base { public: void f(); void f(double); class Derived : public Base { public: //Przedefiniowanie funkcji void f(); Funkcja przedefiniowana zakrywa inne implementacje: Derived d; d.f(); //Woła metodę D::f() d.f(1.0); //Błąd! D::f() zakrywa B::f(double) Rozwiazanie: polecenie using class Derived : public Base { public: using Base::f;//Wszystkie wersje funkcji f beda widoczne void f();//nadpisanie - p. 27/27
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
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
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
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
Programowanie 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
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
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
Dziedziczenie 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
Wykł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
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
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
Programowanie 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!
Programowanie 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
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
Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta 16.09.2006. Strona 1 z 26. Powrót. Full Screen. Zamknij.
Programowanie Sobera Jolanta 16.09.2006 Strona 1 z 26 1 Wprowadzenie do programowania 4 2 Pierwsza aplikacja 5 3 Typy danych 6 4 Operatory 9 Strona 2 z 26 5 Instrukcje sterujące 12 6 Podprogramy 15 7 Tablice
Programowanie 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
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
Programowanie 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
Szablony 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
Operator 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&
C++ - 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,
Instrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201
Programowanie 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
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
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
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
Wstę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
Programowanie 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;
C++ - 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
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ń
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
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 6 - szablony. dr inż. Robert Nowak - p. 1/15 Kolekcje i algorytmy» Deklaracja szablonu y Pojęcia niezależne od typu: kolekcje (np. listy) algorytmy (np. znajdowania
Język C++ Programowanie obiektowe
Język C++ Programowanie obiektowe Cechy programowania obiektowego abstrakcyjne typy danych hermetyczność obiektów (kapsułkowanie) dziedziczenie polimorfizm Programowanie proceduralne vs. programowanie
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
Zaawansowane programowanie w C++ (PCP)
Wykład 9 - powtórzenie. 11 maja 2007 Powtórzenie materiału obiekty automatyczne, statyczne, tymczasowe, dynamiczne dziedziczenie, agregacja polimorfizm, funkcje wirtualne wzorce projektowe (strukturalne,
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ą
Programowanie 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
Informacje 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
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)
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
Programowanie 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,
Dziedziczenie. 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,
EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi
EGZAMIN PROGRAMOWANIE II (10 czerwca 2010) pytania i odpowiedzi 1. Napisz wskaźnik do funkcji fun tak zdeklarowanej: T* fun( int, double const& ) const; definicja wskaźnika musi być precyzyjna, inaczej
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
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
Część I Programowanie niskiego poziomu w języku C 19
Spis treści Przedmowa 13 Wstęp 15 Część I Programowanie niskiego poziomu w języku C 19 Wprowadzenie 21 1 Typy 23 1.1 Fundamentalne typy danych...................... 23 1.2 Typy pochodne.............................
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,
1. 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
Wykł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
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
Zaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 1 - sprawy organizacyjne i wprowadzenie. dr inż. Robert Nowak - p. 1/27 Cel i zakres przedmiotu Umiejętność programowania to umiejętność rozwiazania problemów
Języki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003
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
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
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ą
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
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,
Programowanie 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
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.
Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje 1 dr Artur Bartoszewski - Języki C i C++, sem. 1I- WYKŁAD programowania w C++ Typy c.d. 2 Typy zmiennych Instrukcja typedef -
Programowanie 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];
10. Programowanie obiektowe w PHP5
Ogólnie definicja klasy wygląda jak w C++. Oczywiście elementy składowe klasy są zmiennymi PHP, stąd nieśmiertelne $. Warto zauważyć, że mogą one mieć wartość HHH mgr inż. Grzegorz Kraszewski TECHNOLOGIE
Przeciążanie operatorów
Instrukcja laboratoryjna nr 4 Programowanie w języku C 2 (C++ poziom zaawansowany) Przeciążanie operatorów dr inż. Wilk-Jakubowski Jacek mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz Wprowadzenie Oprócz
Wstę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
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
Programowanie 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.
.NET Klasy, obiekty. ciąg dalszy
.NET Klasy, obiekty ciąg dalszy Przeciążanie operatorów 1 W języku C# istnieje możliwość zdefiniowania funkcjonalności dużej części operatorów dla typów stworzonych przez użytkownika. Dzięki takiemu zabiegowi,
KLASA 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
Programowanie 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
Obszar 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
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,
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
Zaawansowane programowanie w języku C++ Przeciążanie operatorów
Zaawansowane programowanie w języku C++ Przeciążanie operatorów Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
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...
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
Podstawy programowania obiektowego
Podstawy programowania obiektowego Technologie internetowe Wykład 5 Program wykładu Podejście obiektowe kontra strukturalne do tworzenie programu Pojęcie klasy i obiektu Składowe klasy: pola i metody Tworzenie
ROZDZIAŁ 2. Operatory
Bibliografia [1] Jerzy Grębosz, Symfonia C++, Oficyna Kallimach, Kraków, 1999, [2] Jerzy Grębosz, Pasja C++, Oficyna Kallimach, Kraków, 1999, [3] Bjarne Stroustrup, Język C++, WNT, Warszawa, 1997, [4]
W2 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;
C++ - 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
Wstęp do programowania obiektowego. Wykład 2
Wstęp do programowania obiektowego Wykład 2 1 CECHY I KONCEPCJA PROGRAMOWANIA OBIEKTOWEGO 2 Cechy programowania obiektowego Dla wielu problemów podejście obiektowe jest zgodne z rzeczywistością (łatwe
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. Metody stałe w klasie
Metody stałe w klasie Zadeklarowanie metody jako stałej stanowi obietnicę, że wykonanie tej metody nie zmieni stanu obiektu, na rzecz którego została wykonana Umieszczamy const między nawiasem zamykającym
C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy WSKAŹNIKI KLASOWE
WSKAŹNIKI KLASOWE Wskaźniki klasowe Każdy obiekt zajmuje fragment pamięci i wszystkie obiekty tego samego typu zajmują fragmenty pamięci tej samej długości początek miejsca w pamięci zajmowanego przez
C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm. C++ - polimorfizm POLIMORFIZM
POLIMORFIZM Podstawowe pytanie, które nieustannie ma towarzyszyć autorowi programowi: czy gdyby nagle okazało się, że jest więcej... (danych na wejściu, typów danych, czynności, które program ma wykonać,
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
Materiał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
Funkcje 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).
Język JAVA podstawy. Wykład 4, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna
Język JAVA podstawy Wykład 4, część 1 1 Język JAVA podstawy Plan wykładu: 1. Podstawy modelowania obiektowego 2. Konstruktory 3. Dziedziczenie, związki pomiędzy klasami, UML 4. Polimorfizm 5. Klasy abstrakcyjne
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:
Kurs programowania. Wykład 9. Wojciech Macyna. 28 kwiecień 2016
Wykład 9 28 kwiecień 2016 Java Collections Framework (w C++ Standard Template Library) Kolekcja (kontener) Obiekt grupujacy/przechowuj acy jakieś elementy (obiekty lub wartości). Przykładami kolekcji sa
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 3 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Abstrakcja funkcyjna Struktury Klasy hermetyzacja
Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych
Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,
KLASY 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
Operatory. Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1
Operatory Operatory bitowe i uzupełnienie informacji o pozostałych operatorach. Programowanie Proceduralne 1 Przypomnienie: operatory Operator przypisania = przypisanie x = y x y Operatory arytmetyczne
Aplikacje 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
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
Języki i metody programowania Java. Wykład 2 (część 2)
Języki i metody programowania Java INF302W Wykład 2 (część 2) Autor Dr inż. Zofia Kruczkiewicz 1 Struktura wykładu 1. Identyfikacja danych reprezentowanych przez klasy podczas opracowania koncepcji prostego
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
C++ - 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 pól obiektowych wewnątrz innych
Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006)
Programowanie obiektowe - Przykładowe zadania egzaminacyjne (2005/2006) Część 1. Teoria Wyjaśnij pojęcia, podaj przykład: klasa obiekt konstruktor destruktor kapsułkowanie (hermetyzacja) wskaźnik this
Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33
Programowanie w C++ Wykład 8 Katarzyna Grzelak 15 kwietnia 2019 K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe