Programowanie obiektowe w C++ Wykład 05a Temat wiodący: Static, const, volatile. static, const, volatile
|
|
- Beata Sobczyk
- 7 lat temu
- Przeglądów:
Transkrypt
1 Programowanie obiektowe w C++ Wykład 05a Temat wiodący: Static, const, volatile static, const, volatile 1
2 Static zmienne klasowe zmienna klasowa o atrybucie static jest wspólna dla wszystkich obiektów danej klasy istnieje nawet gdy nie ma żadnego obiektu można się do niej odwoływać za pomocą operatora zakresu class ST static int s; // to jest tylko deklaracja int i; public: static int ps; ; int ST::s=0, ST::ps=0; // jak wyżej // to definicja deklaruje się w klasie, ale definiuje (już bez słowa kluczowego static) poza klasą można zdefiniować tylko raz dla bibliotek: definicje do *.cpp a dekl. klasy do *.h (nie trzeba i nie mozna dodatkowych extern ST::s) 2
3 Static metody mogą wtedy być wołane, nawet gdy nie ma obiektów (za pomocą operatora zakresu) mogą korzystać jedynie ze statycznych pól i metod klasy nie ma wskaźnika this Static metody class ST static int s; int i; public: static int ps; ST(int i=0) :i(i) s++; static void ile_nas() cout << s << "\n"; void wszystko() // nie wolno static!!! cout << s << " " << i cout << " " << ps << "\n"; ; 3
4 void main() int i; // i=s; // nie ma ::s ani ::ps // i=ps; // i=st::s; // private i=st::ps; ST::ile_nas(); // ST::wszystko(); // niestatyczna metoda klasy ST a; ST::ile_nas(); a.ile_nas(); a.wszystko(); const --- stałe const, volatile const int ci =7; volatile --- ulotne volatile int vi=8; i++; i--; i=i+0; 4
5 const, volatile obiekty również mogą być stałe bądź ulotne na rzecz obiektów stałych bądź ulotnyvh można aktywować jedynie metody uprzywilejowane metody uprzywilejowane definiujemy podając po nawiasie zamykającym listę argumentów słowa kluczowe const i/lub volatile. UWAGA: uprzywilejowanie metody może powodować jej przeciążenie: int f(); int f() const; class CV int i; public: CV(int i=1) :i(i) ; void out() cout << i; void out() const volatile cout << i; void inc() i++; void inc_c() const // i++; // i jest const void inc_v() volatile i++; void inc_cv() const volatile // i++; ; 5
6 void main() CV cv; const CV cvc; volatile CV cvv; const volatile CV cvcv; cv.inc(); cv.inc_c(); cv.inc_v(); cv.inc_cv(); // cvc.inc(); cvc.inc_c(); // cvc.inc_v(); cvc.inc_cv(); // cvv.inc(); // cvv.inc_c(); cvv.inc_v(); cvv.inc_cv(); // cvcv.inc(); // cvcv.inc_c(); // cvcv.inc_v(); cvcv.inc_cv(); cv.out(); //CV::out(); cvc.out(); //CV::out() const volatile; cvv.out(); cvcv.out(); const, volatile metody uprzywilejowane nie mogą być static. konstruktor ani destruktor nie może być const volatile ani static. deklarowanie metod uprzywilejowanych nie może prowadzić do niejednoznaczności int f() const; // int f() const volatile; 6
7 Przykład: pola const i static class info static int cntr, // licznik istniejacych obiektow serial; // statyczna zmienna pomocnicza const int nr; // unikalny numer seryjny obiektu public: info() info(const info & i); ~info(); info & operator=(const info &p); ; int info::cntr=0, info::serial=0; // static // static info::info() :nr(++serial) cntr++; cout << "\nkonstruktor bezparametrowy obiektu nr" << nr; cout << " jest " << cntr << " obiektow info"; cout.flush(); info::info(const info & i) :nr(++serial) cntr++; cout << "\nkonstruktor kopiujacy obiektu nr" << nr << " z obiektu " << i.nr; cout << " jest " << cntr << " obiektow info"; cout.flush(); 7
8 info::~info() cntr--; cout << "\ndestruktor obiektu nr" << nr; cout << " zostanie " << cntr << " obiektow info"; cout.flush(); info & info::operator=(const info &p) cout << "\noperator przypisania do obiektu nr " << nr; cout << " z obiektu nr" << p.nr; cout << " jest " << cntr << " obiektow info"; cout.flush(); return *this; this dostępny w każdej niestatycznej metodzie jest to wskaźnik do obiektu na rzecz którego wywołano metodę można go wykorzystać jeżeli mamy zwrócić wskaźnik bądź referencję do obiektu na rzecz którego wywoływana jest metoda nie zajmuje pamięci nie wymaga deklarowania 8
9 this person & person::timetravel(int years) age += years; return *this; person Boss(40, John, Kovalsky ); ( Boss.timeTravel(+20) ).timetravel(-30) friend po polsku zaprzyjaźnianie jest to deklaracja znosząca ograniczenia dostępu do składowych klasy przez ściśle określony kod 9
10 friend class A friend C::theMethodNoArg(); // dotyczy konkretnej metody, tu bezargumentowej friend class B; // dotyczy całej deklaracji klasy B // również deklaracje wewnątrz B mają dostęp // do pól prywatnych A friend fun(); // dotyczy konkretnej funkcji, tu bezargumentowej friend zaprzyjaźnianie nie podlega dziedziczeniu zaprzyjaźnianie nie jest przechodnie deklarowane w dowolnej sekcji (nawet prywatnej) klasy 10
11 friend class M friend void f() ; jest równoważne class M friend void f(); ; void f() Co to jest operator? Operatory a = b.val >> 4 + c * d[ e++ ] 11
12 Operatory operator definiuje operacje wykonywane na swoich argumentach i typ wyniku takiej operacji analogicznie do funkcji. w C++ można definiować znaczenie operatorów w przypadku wykorzystania ich do obiektów (przynajmniej jeden argument obiektowy). Operatory Można przeciążać większość operatorów Przeciążanie może poprawić wydajność Nie ma obowiązku a zwykle nie ma i potrzeby definiowania wielu operatorów, jeżeli operator byłby sporadycznie używany to zaleca się deklarowanie go jako metody bądź zwykłej funkcji. 12
13 Operatory które można przeciążać () [] -> ! ~ * & new delete (typ) // jednoargumentowe ->* * / % + - << >> < <= > >= ==!= & ^ && = += -= *= /= %= &= ^= = <<= >>= // op. przypisania Operatory nie można przeciążać operatorów:..* ::?: sizeof operatory, które mogą być jedynie metodami klasy: () [] -> new delete (typ) = operatory domniemane, jeżeli nie zdefiniowane: = & 13
14 Łączność operatory przypisania i jednoargumentowe są prawostronnie łączne a=b=c oznacza a=(b=c) pozostałe lewostronnie a+b+c oznacza (a+b)+c Kolejność wartościowania kolejność wartościowania argumentów niezdefiniowana, za wyjątkiem:, &&,,, && najpierw wartościowany lewy argument, potem prawy dla operacji logicznych stosowane jest skrócone wartościowanie. 14
15 Operatory a metody inna składnia deklaracji, definicji i wywołania operatory nie mogą mieć argumentów domyślnych (wyjątek: operator wywołania funkcji) określona jest liczba argumentów (wyjątek: operator wywołania funkcji) przyjęte jest zwyczajowe znaczenie operatorów Operatory Chcesz += to zdefiniuj go, nie wystarczy zdefiniować + i = Chcesz ++ to zdefiniuj go, kompilatorowi nie wtstarczy + i = Zachowaj wierność zwyczajowemu znaczeniu operatorów niech jednoarg. & zwraca adres Zachowaj konsekwencję ++i; i++; i+=1; i=i+1; // powinny dawać taki sam efekt. 15
16 Operatory jako metody pierwszy argument będzie obiektem klasy metoda ma mniej argumentów niż operator deklarowanie int point::operator<=(point); wywoływanie point point1, point2; int i= point1 <= point2; int j= point1.operator<=(point2); Operatory jako funkcje przynajmniej jeden z argumentów musi być obiektem wszystkie argumenty są parametrami funkcji operatorowej nie ma this deklarowanie wywoływanie int operator<=(point, point); point point1, point2; int i = point1 <= point2; int j= operator<=(point1, point2); 16
17 Konwencja dla operatorów ++ i -- operator++() i operator--() są przedrostkowe ++i --i operatory przyrostkowe deklarujemy i definiujemy z dokładnie jednym nienazwanym parametrem int: operator++(int); operator--(int); i++ i-- Konwencja dla operatorów ++ i -- class X public: X& operator++(); X operator++(int); ; // prefix ++a // postfix a++ class Y public: ; Y& operator++(y&); Y operator++(y&, int); // prefix ++b // postfix b++ 17
18 Konwencja dla operatorów ++ i -- void f(x a, Y b) ++a; // a.operator++(); a++; // a.operator++(0); ++b; // operator++(b); b++; // operator++(b, 0); a.operator++(); // odpowiada ++a; a.operator++(0); // odpowiada a++; operator++(b); // odpowiada ++b; operator++(b, 0); // odpowiada b++; Operatory class X // składowe z niejawnym this X* operator&(); // przedrostkowy, jednoargumentowy & X operator&(x); // dwuargumentowy X operator++(int); // przyrostkowy // X operator&(x, X); // blad trzyargumentoowy // X operator/(); // blad jednoarg. ; // funkcje globalne, bez this, często zaprzyjazniane X operator-(x); // przedrostkowy X operator-(x, X); // dwuargumentowy X operator--(x&, int); // przyrostkowy dekrementacja // X operator-(x, X, X); // blad trzyargumentoowy // X operator/(); // blad jednoarg. 18
19 Operator przypisania Musi być zdefiniowany jako metoda (niestatyczna) a nie jako funkcja T& T::operator=(const T &) Nie ma listy inicjalizacyjnej bo to nie jest konstruktor!!! Operator przypisania person& person::operator=(const person &o) if (this == &o) // Tom = Tom; return *this; delete name; name=new char[strlen(o.name) + 1]; strcpy(name, o.name); delete lastname; lastname=new char[strlen(o.lastname) + 1]; strcpy(lastname, o.lastname); age=o.age; return *this; // zwraca obiekt, będzie przekazany przez referencje 19
20 Operator przypisania dlaczego operator przypisania zwraca referencję? chcemy napisać o1=o2=o3; person& operator=(const person&); przypisania do: o2 z: o3 operator przypisania do: o1 z: (o2=o3) person operator=(const person&); przypisania do: o2 z: o3 konstruktor kopiujący (powstaje tymczasowy obiekt t1) operator przypisania do: o1 z: t1 konstruktor kopiujący (powstaje tymczasowy obiekt t2) destruktor t2 destruktor t1 Operator przypisania dlaczego operator przypisania zwraca referencję? chcemy napisac o1=o2=o3; void operator=(const person&); można o2=o3; nie da się o1=o2=o3; 20
21 Operator przypisania generowany automatycznie jeżeli się nie zdefiniuje operatora przypisania to kompilator dostarczy własny operator przypisania, który skopiuje obiekt pole po polu. nie będzie działał dla pól stałych nie będzie działał dla dla referencji dla wskaźników skopiuje wartość Operatory strumieniowe Wejście friend istream & operator >>(istream &, T &); Wyjście friend ostream &operator <<(ostream &, const T &); 21
22 Operatory strumieniowe class point int x, y; public: friend istream &operator >>(istream & s, point & p); friend ostream &operator <<(ostream & s, const point &); point p, p2; cin>>p; cin>>p>>p2; cout<<p2<<p; Operatory strumieniowe istream & operator >>(istream & s, point & p) s >> p.x >> p.y; return s; ostream &operator <<(ostream & s, const point & p) s << p.x << p.y; return s; 22
23 T t; Operator wyłuskania T* operator->(); t->m jest interpretowane jako: ( t.operator-> )->m można używać zmiennej jak wskaźnika jeżeli operator-> nie zwraca wskaźnika to można użyć go: a=t.operator->(); nie można: a=t->; bo to błąd składniowy Operator wywołania funkcji wynik T::operator()(args); Dowolna liczba argumentów, można przeciążać Wyjątek: tylko ten operator może mieć domyślne argumenty potem można obiekt używać tak, jak funkcję T ob; ob(); stosuje się gdy nie istnieje odpowiedni operator, a by się przydał jest jakś metoda dominująca dla klasy (będzie bez nazwy ale łatwiejsza do wywołania np. klasa counter i metoda inkrementacja) 23
24 operator indeksowania wynik T::operator[](index); typy wyniku i indeksu dowolne ale zdrowy rozsądek nakazuje indeks całkowity można tworzyć inteligentne agregaty, Operator konwersji operator konwersji tworzy obiekt określonego typu lub klasy z obiektu na rzecz którego jest wywoływany T::operator X(); operator konwersji klasy T do typu X: nie określa się jawnie typu wartości zwracanej, jest bezargumentowy musi być metodą (nie funkcją) 24
25 Operator konwersji np.: person::operator int(); konwersja może następować niejawnie: person o; int i=o+5; W wyrażeniach dla danego obiektu konwersja jest stosowana tylko jeżeli jest konieczna, może być tylko jedna konwersja danego składnika definiowana przez użytkownika nie może być niejednoznaczności Operator konwersji np. dla klas: A, B i C, zdefiniowano operatory konwersji B::operator A() i C::operator B(); int f(a a); A a; B b; C c; f(a); // ok.. f(b); // f(a(b)) // f(c); // nie ma operatora C::operator A() // nie zrobi się niejawnie f(a(b(c))) // (2 konwersje skladnika) 25
26 Operator konwersji aby przekształcić obiekt jednego typu w obiekt innego typu można jawnie użyć konstruktora, ale: nie da się przeprowadzić przekształcenia do typu podstawowego (np. int, bo to nie klasa), nie da się przekształcić do starej klasy bez modyfikowania jej definicji. Przykład class counter int cnt; public: counter(int = 0):cnt(0); int operator()(int =1); // increment by arg. or by 1 operator int(); // convert to int operator double(); // convert to double counter &operator+=(int); friend counter operator+(int, counter); // int+counter, friend counter operator+(int); // counter+int int operator++(); // ++counter int operator++(int); // counter++ ; 26
27 inline int counter::operator ()(int i) return cnt+=i; ; inline counter::operator int() return cnt; ; inline counter::operator double() return double(cnt); ; Przykład Przykład counter & counter::operator +=(int i) cnt+=i; // operator()(i); (*this)(i) return *this; ; counter operator+(int i, counter l) l+=i; // zaprzyjaźnianie nie było konieczne return l; ; 27
28 counter counter::operator +(int i) counter l=*this; l+=i; return l; ; Przykład int counter::operator ++() cnt+=1; return cnt; ; int counter::operator ++(int) int ret=cnt; cnt+=1; return ret; ; Przykład class complex double re, im; public: complex(double re, double im):re(re), im(im) ; complex & operator = (const complex &c); complex & operator += (const complex &c); complex operator + (const complex &); friend complex & operator -= (complex &, const complex &); friend complex operator - (const complex &, const complex &); friend istream & operator >>(istream &, complex &); friend ostream & operator <<(ostream &, const complex &); ; 28
29 Przykład complex & complex::operator = (const complex &c) re=c.re; im=c.im; return *this; ; Przykład complex & complex::operator += (const complex &c) re+=c.re; im+=c.im; return *this; ; inline complex complex::operator + (const complex & c) return complex(re+c.re, im+c.im); // complex(double, double) 29
30 Przykład inline complex & operator-=(complex & c1, const complex & c2) c1.re-=c2.re; c1.im-=c2.im; //friend return c1; complex operator-(const complex & c1, const complex & c2) complex c=c1; c-=c2; //friend return c; Przykład istream & operator >>(istream & s, complex & c) s >> c.re >> c.im; return s; ostream &operator <<(ostream & s, const complex & c) s << c.re << c.im; return s; 30
Programowanie obiektowe w C++ Wykład 03 Temat wiodący: Konstruktory i deskruktory. Konstruktory i Destruktory
Programowanie obiektowe w C++ Wykład 03 Temat wiodący: Konstruktory i deskruktory Konstruktory i Destruktory 1 Konstruktor Konstruktor co to? jest metodą służącą do inicjowania obiektów danej klasy jest
Bardziej szczegółowoNowe słowa kluczowe. Komentarze. Wskaźniki typu void. class, delete, new, friend,... /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza)
Różnice między C i C++ (Rozszerzenia C++) Nowe słowa kluczowe class, delete, new, friend,... Komentarze /* Komentarz w C i C++ */ // Komentarz w C++ (do końca wiersza) Wskaźniki typu void W C wskaźniki
Bardziej szczegół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ół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ół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ółowoC++ - 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
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ółowoEGZAMIN 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
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ół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ół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ół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ół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ół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ół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ół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 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ół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ę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
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ół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ół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ółowoStrona 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
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ół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ółowoJę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
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ółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
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ółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) {
Przeciążanie a dziedziczenie class Integer2: public Integer Operatory, z wyjątkiem operatora przypisania są automatycznie dziedziczone w klasach pochodnych. Integer2(int i): Integer(i) Automatyczne tworzenie
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ółowoAutomatyczne tworzenie operatora = Integer2& operator=(const Integer& prawy) { zdefiniuje. Integer::operator=(ri);
Przeciążanie operatorów [] Przykład: klasa reprezentująca typ tablicowy. Obiekt ma reprezentować tablicę, do której można się odwoływać intuicyjnie, np. Tab[i] Ma być też dostępnych kilka innych metod
Bardziej szczegółowoProgramowanie Obiektowo Zorientowane w języku c++ Konstruktory
Programowanie Obiektowo Zorientowane w języku c++ Konstruktory Mirosław Głowacki 1 1 Akademia Górniczo-Hutnicza im. Stanisława Staszica w Ktrakowie Wydział Inżynierii Metali i Informatyki Stosowanej Katedra
Bardziej szczegółowoTechniki 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
Bardziej szczegółowoPrzeciążenie operatorów
Przeciążenie operatorów W C++ można przeciążyć większość operatory tak, żeby wykonywali zadania, charakterystyczne dla danej klasy Po przeciążeniu odpowiednich operatorów można posługiwać się obiektami
Bardziej szczegół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ół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ółowoProgramowanie, część I
11 marca 2010 Kontakt Wstęp Informacje organizacyjne Materiał na ćwiczenia Plan wykładu http://www.fuw.edu.pl/~rwys/prog rwys@fuw.edu.pl tel. 22 55 32 263 Materiał na ćwiczenia Informacje organizacyjne
Bardziej szczegółowoZaawansowane 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
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ół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ół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ół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ół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ółowoJęzyk C++ Różnice między C a C++
Język C++ Różnice między C a C++ Plan wykładu C a C++ Różnice ogólne Typy Deklaracje zmiennych C++ jako rozszerzenie C Domyślne argumenty funkcji Przeciążanie funkcji Referencje Dynamiczny przydział pamięci
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ół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 8 Przykład realizowany na wykładzie Klasy StringBad i String. Wstępne pliki załaczone jako źródła.
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ółowoZaawansowane programowanie w języku C++ Klasy w C++
Zaawansowane programowanie w języku C++ Klasy w C++ Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka bez ograniczeń
Bardziej szczegół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 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 Obiektowew języku C++ Zadania L4
Programowanie Obiektowew języku C++ Zadania L4 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ół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ół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ół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ół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 w języku C++
Katedra Informatyki Stosowanej Politechniki Łódzkiej mgr inż. Tomasz Jaworski Programowanie w języku C++ Al. Politechniki 11, 90-924 Łódź ul. Stefanowskiego 18/22, 90-924 Łódź http://tjaworski.kis.p.lodz.pl
Bardziej szczegółowoPROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec
PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych
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ółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Pojęcie struktury i klasy. Konstruktor i destruktor. Spotkanie 08 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Spotkanie 08 Klasy: definicja a deklaracja klasy dane składowe
Bardziej szczegółowoJę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 -
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ół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ół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ół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ół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ół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ółowoC++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy. C++ - klasy KONSTRUKTORY
Inicjalizacja obiektu KONSTRUKTORY Inicjalizacja Przyczyną wielu błędów w programach jest nieprawidłowe zainicjalizowanie zmiennych na początku działania programu. Obiekt zawiera z reguły szereg pól ich
Bardziej szczegółowoWyliczanie wyrażenia obiekty tymczasowe
Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
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ół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ółowoProgramowanie obiektowe
Programowanie obiektowe Wykład 2 Marcin Młotkowski 4 marca 2015 Plan wykładu 1 2 3 4 5 Marcin Młotkowski Programowanie obiektowe 2 / 47 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie;
Bardziej szczegół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ół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ół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ółowoProgramowanie 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
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ółowoC++ Przeładowanie operatorów i wzorce w klasach
C++ i wzorce w klasach Andrzej Przybyszewski numer albumu: 89810 14 listopada 2009 Ogólnie Przeładowanie (przeciążanie) operatorów polega na nadaniu im nowych funkcji. Przeładowanie operatora dokonuje
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ół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ół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ół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ół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ół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ół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ółowoLaboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:
Zakres laboratorium: definiowanie struktur terminologia obiektowa definiowanie klas funkcje składowe klas programy złożone z wielu plików zadania laboratoryjne Laboratorium nr 12 Temat: Struktury, klasy.
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ół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ółowoTypy metod: konstruktory, destruktory, selektory, zapytania, iteratory.
Typy metod: konstruktory, destruktory, selektory, zapytania, iteratory. Konstruktory Konstruktory w językach obiektowych są to specjalne metody wywoływane podczas tworzenia nowego obiektu i służące do
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ółowoCo to jest klasa? Z programistycznego punktu widzenia klasa stanowi typ danych, który odwzorowuje wspólne cechy jakiegoś obiektu.
.NET Klasy, obiekty Klasa i obiekt Każdy obiektowy język programowania daje programiście możliwość tworzenia nowych typów danych. Nowy typ danych definiuje się poprzez zdefiniowanie klasy. Co to jest klasa?
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ółowoC++ - 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ć,
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ół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ółowoInstytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska
Instytut Mechaniki i Inżynierii Obliczeniowej www.imio.polsl.pl fb.com/imiopolsl @imiopolsl Wydział Mechaniczny Technologiczny Politechnika Śląska Języki programowania z programowaniem obiektowym Laboratorium
Bardziej szczegółowoProgramowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg
Programowanie obiektowe Materiały przygotował: mgr inż. Wojciech Frohmberg Konstruktor Konstruktor w językach zorientowanych obiektowo pełni podwójną rolę: przydziela pamięć na obiekt, zdefiniowany klasą
Bardziej szczegółowoObsługa wyjątków. Język C++ WW12
Obsługa wyjątków Pozwala zarządzać błędami wykonania w uporządkowany sposób. Umożliwia automatyczne wywołanie części kodu, funkcji, metod klas, który trzeba wykonać przy powstaniu błędów. try //blok try
Bardziej szczegółowoProgramowanie Obiektowew języku C++ Zadania L4
Programowanie Obiektowew języku C++ Zadania L4 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ółowoWykład 1. Program przedmiotu. Programowanie Obiektowe (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie Obiektowe (język C++) Wykład 1. Definiowanie prostych klas. Przykłady. Przypomnienie: typy referencyjne, domyślne wartości argumentów, przeciąŝanie funkcji. Konstruktory,
Bardziej szczegółowo