KLASY cz4. Dorota Pylak. destruktory składowe statyczne przeciążanie operatorów. wskaźniki
|
|
- Henryk Tomaszewski
- 5 lat temu
- Przeglądów:
Transkrypt
1 KLASY cz4. destruktory składowe statyczne przeciążanie operatorów Dorota Pylak wskaźniki
2 2 Klasy - podsumowanie poznanych wiadomości Deklaracja klasy może zawierać pola, konstruktory oraz metody. W deklaracji klasy znajdują się sekcje prywatne oraz publiczne. Zazwyczaj sekcja prywatna zawiera dane obiektu, a publiczna metody tworzące interfejs. Typowa deklaracja klasy ma postać: class NazwaKlasy{ ; private: public: deklaracje składowych (pól - danych) prototypy metod lub definicje metod
3 3 Klasy - podsumowanie poznanych wiadomości Definicje metod mogą: a) występować w obrębie deklaracji klasy, b) lub deklaracja klasy zawiera jedynie prototypy, a właściwe definicje podaje się poza klasą kwalifikując nazwę metody operatorem zasięgu i nazwą klasy Klasa może być zapisana w osobnym pliku File->New->Class dodajemy do projektu plik w którym zapisywana będzie klasa. W oknie edycyjnym nadajemy mu nazwę taką jak klasa która ma być w nim zapisana np. Wektor. Otrzymujemy 2 pliki : Wektor.h plik nagłówkowy w którym zapisujemy deklaracje klasy tj. pola i nagłówki metod Wektor.cpp plik implementacyjny w którym definiujemy metody klasy Wektor, poprzedzając je nazwą klasy z operatorem zasięgu Wektor:: Zarówno w piku Wektor.cpp jak i pliku zawierającym f-cję main musimy dołączyć naszą klasę poprzez #include Wektor.h
4 Destruktory 4 Destruktor jest funkcją, którą wykonuje się w celu zwolnienia pamięci przydzielonej dodatkowym obiektom lub innych zasobów. Jest on wywoływany automatycznie przez system podczas usuwania obiektu. Destruktora można czasem w ogóle nie definiować. Jeśli go jednak definiujemy, to jego nazwą jest nazwa klasy poprzedzona znakiem tyldy: MojaKlasa: class MojaKlasa { ; MojaKlasa();//to jest konstruktor ~MojaKlasa();//a to - destruktor Destruktor nie posiada argumentów. Jedna klasa może mieć tylko jeden destruktor.
5 Destruktory 5 Najczęstszą funkcją destruktora jest zwolnienie pamięci (zwykle poprzez zniszczenie wszystkich pól używanych przez ten obiekt). Destruktor zachowuje się jak zwykła metoda, tyle tylko, że jest wywoływany automatycznie podczas usuwania obiektu z pamięci. Samo wywołanie destruktora obiektu nie niszczy: wykonuje on to i tylko to, co zapisane jest w jego kodzie. Możemy jawnie wywołać destruktor na rzecz istniejącego obiektu. Niszczenie obiektów lokalnych, utworzonych na stosie zachodzi, gdy sterowanie wychodzi z bloku, w którym były zdefiniowane. Stos jest wtedy zwijany do stanu, w jakim był przy wejściu do danego bloku (funkcji). Usunięte zatem zostaną wszystkie zmienne utworzone na stosie w tym bloku, wśród nich również zmienne obiektowe. Usuwanie obiektów na stosie odbywa się w kolejności odwrotnej do ich kreowania jako pierwsze zostaną zatem zniszczone te, które utworzone były jako ostatnie.
6 Destruktory 6 class Klasa { int a; public: Klasa() {a=0; cout<<"konstruktor bezparam, a="<<a<<endl; Klasa(int aa) {a=aa; cout<<"konstruktor z param, a="<<a<<endl; int geta()const {return a; void seta(int aa) {a=aa; ~Klasa() {cout<<"destruktor a="<<a<<endl; ;
7 Destruktory 7 int main() { Klasa k1; Klasa k2 = Klasa(); k2.seta(1); Klasa k3(2); Klasa k4 = Klasa(3); konstruktor bezparam, a=0 konstruktor bezparam, a=0 konstruktor z param, a=2 konstruktor z param, a=3 destruktor a=3 destruktor a=2 destruktor a=1 destruktor a=0
8 Pola statyczne 8 Szczególny rodzaj pól to pola statyczne. Deklaruje się je ze specyfikatorem static. Oznacza on, że będzie utworzona tylko jedna zmienna o tej nazwie i że nazwa ta będzie leżeć w zasięgu klasy. Zmienna ta jest niezależna od obiektów (zmiennych) klasy, można z niej korzystać nawet, jeśli żaden obiekt tej klasy nie został utworzony. Sama deklaracja pola statycznego w klasie nie tworzy tej zmiennej (bo jest tylko deklaracją, a nie definicją). Zmienne odpowiadające polom niestatycznym (instancyjnym) są tworzone podczas tworzenia obiektów klasy. Zmienne statyczne trzeba utworzyć, czyli zdefiniować na zewnątrz klasy. Ponieważ jej nazwa należy do zasięgu klasy, poza klasą trzeba się do tej zmiennej odnieść poprzez jej nazwę kwalifikowaną, za pomocą operatora zasięgu klasy, ' ::'. W definicji poza klasą nie powtarzamy już specyfikatora static.
9 9 Pola statyczne Definiując zmienną statyczną klasy można (choć nie trzeba) ją zainicjować. Na przykład: class D { ; static int k1; // deklarujemy statyczne składowe klasy static int k2; int D::k1; // definicja; domyślne inicjowanie zerem int D::k2 = 7; // definicja z inicjowaniem
10 Pola statyczne 10 Wyjątkowo, składowe statyczne mogą być definiowane i inicjalizowane bezpośrednio w punkcie deklaracji, wewnątrz klasy, ale tylko jeśli są stałymi(const) i typu całkowitego class D { ; static const int k1, k2 = 2; //... const int D::k1 = 1; Tu k2 jest tworzone i inicjalizowane wewnątrz definicji klasy D, natomiast k1 tylko deklarowane, dlatego definicja z ostatniej linii jest konieczna, i to wraz z inicjalizacją, bo stałe muszą być inicjalizowane w momencie ich definiowania. Zmienne statyczne są tworzone (i inicjowane) po załadowaniu programu do pamięci, ale przed rozpoczęciem wykonywania funkcji main (jak zmienne globalne).
11 Pola statyczne 11 Do zmiennych statycznych klasy można się odwoływać w programie: poprzez ich pełną nazwę kwalifikowaną (D::k1) lub tak jak do normalnej składowej, czyli poprzez nazwę dowolnego obiektu tej klasy i operator wyboru składowej (kropka lub strzałka, w zależności od tego, czy nazwa była nazwą obiektu czy wskaźnika do niego). Oczywiście, ponieważ istnieje tylko jeden egzemplarz zmiennej statycznej, nie ma wtedy znaczenia, którego obiektu użyjemy. PODSUMOWANIE Składowe (pola i metody) niestatyczne (instancyjne) zawsze wiążą się z istnieniem obiektu danej klasy. Składowe statyczne (klasowe) tzn. ze specyfikatorem static nie dotyczą obiektów, ale całej klasy są wspólne dla wszystkich obiektów tej klasy mogą być używane nawet wtedy, gdy nie istnieje żaden obiekt klasy
12 12 Pola statyczne przykład licznik obiektów class Wektor { private: double x, y, z; //prywatne pola klasy static int ile; //licznik obiektów (instancji) klasy Wektor public: //sekcja publiczna Wektor();//bezparametrowy, zeruje pola Wektor(double xx, double yy, double zz); ~Wektor();//destruktor static int ilewektorow(); //metoda która istnieje dla klasy // a nie obiektu ; //pozostałe metody jak poprzednio //... int Wektor::ile =0; // definicja zmiennej statycznej z inicjowaniem
13 Pola statyczne przykład licznik obiektów 13 int Wektor:: ilewektorow() { return ile; Wektor:: Wektor(){ x = 0; y = 0; z = 0;//zerujemy pola klasy ile++; cout<<"***konstruktor bezparametrowy***, obiekt" << ilewektorow()<<endl; Wektor:: Wektor(double xx, double yy, double zz){ x = xx; y = yy; z = zz; ile++; cout<<"***konstruktor zwykly z bezparametrami***, obiekt" <<ilewektorow()<<endl; Wektor:: ~Wektor(){ cout<<"***destruktor ***, obiekt"<<ilewektorow()<<endl; ile--;
14 14 Pola statyczne przykład licznik obiektów int main(){ cout<<"liczba obiektow: "<< Wektor::ileWektorow() <<endl; //liczba obiektow: 0 //deklarujemy obiekt (instancje) klasy Wektor Wektor w1; //***konstruktor bezparametrowy***, obiekt 1 w1.wyswietl();//[ 0.0, 0.0, 0.0 ] //kolejny obiekt klasy Wektor Wektor w2(2,4,5); //***konstruktor zwykly z parametrami***, obiekt 2 w2.wyswietl(); //[ 2.0, 4.0, 5.0 ] Wektor w3 = w1.suma(w2); //***konstruktor zwykly z parametrami***, obiekt 3 w3.wyswietl();//[ 2.0, 4.0, 5.0 ] return 0; ***destruktor ***, obiekt 3 ***destruktor ***, obiekt 2 ***destruktor ***, obiekt 1
15 15 Wskaźnik this W C++ this jest nazwą ustalonego wskaźnika do obiektu na rzecz którego wykonywana jest metoda. Nazwą tego obiektu jest zatem *this. (* -operator dereferencji) Słowo kluczowe this może być użyte wyłącznie w metodach (niestatycznych funkcjach składowych), konstruktorach i destruktorze klasy. Do składowej sklad obiektu metoda (konstruktor, destruktor) może odwoływać się poprzez pełną nazwę tego obiektu, czyli używając notacji this->sklad lub (*this).sklad. Taka forma jest konieczna, jeśli wewnątrz funkcji zadeklarowaliśmy zmienną o tej samej nazwie, co któraś ze składowych klasy. Nazwa niekwalifikowana odnosi się wtedy do tej zmiennej lokalnej, a nie do składowej (zmiennymi lokalnymi są też zmienne skojarzone z parametrami funkcji).
16 Wskaźnik this 16 class MojaKlasa { double x; //składowa domyślnie prywatna public: void set(double); ; void MojaKlasa::set(double x) { this->x = x; //lub (*this).x = x;
17 17 Przeciążenia operatorów za pomocą metod klasy Operatory dwuargumentowe Aby przeciążyć w klasie Klasa definiujemy metodę o prototypie lub Typ operator@(typarg); Typ operator@(typarg&); Przykład 1. W klasie Wektor zadeklarować przeciążony operator == porównujący współrzędne wektora dla którego wykonujemy porównanie (lewa strona operatora) ze współrzędnymi wektora przekazanego jako parametr: bool operator==(const Wektor &w) const; Implementacja: bool Wektor ::operator==(const Wektor &w) const { return x==w.x && y==w.y && z==w.z;
18 18 Przeciążenia operatorów za pomocą metod klasy- przykład Przykład 2. Zadeklarować przeciążony operator + : Wektor operator+(const Wektor &w) const; która zwraca w wyniku wektor będący sumą wektora dla którego jest wykonywana metoda oraz wektora przekazanego przez parametr: Wektor Wektor ::operator+(const Wektor &w) const{ return Wektor(x+w.x, y+w.y, z+w.z); Przykład 3. Zdefiniuj przeciążenie operatora zwracającego wektor przeciwny do wektora na rzecz którego wykonywany jest operator: Wektor operator-()const; //deklaracja Wektor Wektor::operator-() const{ //definicja return Wektor(-x,-y,-z);
19 19 Przeciążenia operatorów za pomocą metod klasy- przykład Wówczas w funkcji main() np.: int main(){ Wektor a(1,1,1); Wektor b(2,2,2); if(a==b)//przeciążony operator== zamiast a.rowne(b) cout<<"a==b"<<endl; else cout<<"a!=b"<<endl; Wektor s1 = a.suma(b); s1.wyswietl(); //suma z wykorzystaniem operatora przeciążonego Wektor s = a+b; s.wyswietl(); //[3.0, 3.0, 3.0] Wektor pd = -b;
20 20 #include <string> using namespace std; class Kot { private: string imie; int wiek; double waga; public: Klasa Kot plik nagłówkowy Kot.h Kot();//konstruktor pusty tworzący obiekt kot //o imieniu wadze 0kg i wieku 0 lat Kot(const Kot &k); //konstruktor kopiujacy Kot(string i, int w, double wa); //konstruktor z //parametrami tworzący kota o zadanym imieniu, wadze i // wieku
21 ; Klasa Kot plik nagłówkowy Kot.h //fcja ustawia pola na dane parametrami void Ustaw( string i, int w, double wa); //fcje zwracające wartości poszczególnych pól string zwrocimie()const; int zwrocwiek()const; double zwrocwage()const; //kot miauczy void dajglos() const; //f-cja logiczna sprawdzająca czy kot jest starszy //od kota danego parametrem bool starszyod(const Kot &k) const; //przeciążony operator > true jeśli kot jest starszy //od kota danego parametrem bool operator >(const Kot & k)const; 21
22 22 Klasa Kot plik implementacyjny Kot.cpp #include <iostream> #include "Kot.h" using namespace std; Kot::Kot() { imie = ""; wiek = 0; waga = 0; Kot::Kot(const Kot &k) { imie = k.imie; wiek = k.wiek; waga = k.waga; Kot::Kot(string i, int w, double wa) { imie = i; wiek = w; waga = wa; void Kot::Ustaw(string i, int w, double wa) { imie = i; wiek = w; waga = wa;
23 23 Klasa Kot plik implementacyjny Kot.cpp string Kot::zwrocImie()const { return imie; int Kot::zwrocWiek()const { return wiek; double Kot::zwrocWage()const { return waga; void Kot::dajGlos() const { cout << "Miau";
24 Klasa Kot plik implementacyjny Kot.cpp 24 bool Kot::starszyOd(const Kot &k) const { return wiek > k.wiek; bool Kot:: operator>(const Kot & k)const { return wiek > k.wiek;
25 25 #include <iostream> #include "Kot.h" using namespace std; Klasa Kot main() int main() { Kot f; f.ustaw("filus", 2, 2); Kot k("mruczek", 5, 4); if (f.starszyod(k))//lub if (f > k) cout << "starszy jest " << f.zwrocimie()<<endl; else cout << "starszy jest " << k.zwrocimie()<<endl; Kot t = f;//przypisanie obiektów cout << t.zwrocimie(); starszy jest Mruczek Filus
26 26 Wskaźniki do zmiennych Wartością zmiennej wskaźnikowej (ang. pointers) jest adres innej zmiennej. Zazwyczaj, określając typ zmiennej wskaźnikowej musimy określić też typ tych zmiennych, których adresy dana zmienna wskaźnikowa może przechowywać (związane jest między innymi z tym, że musi być znana długość (w bajtach) tego typu zmiennych). Deklaracja wskaźnika ma postać lub lub Typ *nazwa; Typ* nazwa; Typ * nazwa; Zmienna o nazwie nazwa będzie zmienną wskaźnikową przystosowaną do przechowywania adresów innych zmiennych, ale koniecznie typu Typ.
27 27 Przykład 1: Wskaźniki do zmiennych /*Deklarujemy i definiujemy (przydzielamy pamięć na) trzy zmienne typu double*/ double x, y = 1.5, u; /*Wprowadzamy zmienną wskaźnikową przystosowaną do przechowywania adresów zmiennych typu double:*/ double *px; /*px jest wskaźnikiem do zmiennej typu double. Natomiast zmienną, której adres jest wartością zmiennej wskaźnikowej, nazywamy zmienną wskazywaną przez ten wskaźnik. Wartość utworzonego wskaźnika px jest nieokreślona, to znaczy nie został tam wpisany adres żadnej istniejącej zmiennej typu double*/
28 28 Wskaźniki do zmiennych /*Jak przypisać zmiennym wskaźnikowym wartości(wpisać do nich adresy istniejących zmiennych typu double): */ px = &x; /*Do px wpisaliśmy adres zmiennej x typu double(zmienna x już istnieje, ma więc ma adres, mimo że jej wartość jest wciąż nieokreślona. Znak ' &' pełni rolę operatora wyłuskania adresu i działa na wyrażenie po swojej prawej stronie (musi to być wyrażenie identyfikujące daną, która ma określony, dostępny w programie adres w pamięci). Jeśli var jest identyfikatorem zmiennej, to wartością wyrażenia &var jest adres tej zmiennej.*/ double* py = &y /*Wskaźnik py deklarujemy i od razu inicjujemy adresem istniejącej y (wartością zmiennej wskazywanej przez py, czyli zmiennej y, jest 1.5)*/
29 29 double *pz, *pu = &u, v; Wskaźniki do zmiennych /*Deklarując w jednej instrukcji dwa lub więcej wskaźników, należy identyfikator każdego z tych wskaźników poprzedzić gwiazdką. Zmienna v jest typu double, a nie wskaźnikowego. Jak poprzez wskaźnik do zmiennej można dostać się do samej zmiennej? Robi się to poprzez operator dereferencji, zwany też operatorem wyłuskania wartości, oznaczany przez gwiazdkę. Jeśli pvar jest identyfikatorem wskaźnika, to wyrażenie *pvar jest nazwą zmiennej wskazywanej przez pvar. Zatem, ponieważ *py jest nazwą zmiennej wskazywanej przez py, więc jest w tej chwili inną nazwą zmiennej y */ cout << "*py = " << *py << " y = " << y << endl; /*to drukując wartość *py drukujemy 1.5 aktualną wartość y *py = 1.5 y = 1.5 */
30 Wskaźniki do zmiennych /*Analogicznie, przypiszmy zmiennej x wartość 0.5. Drukując teraz wartość *px drukujemy wartość zmiennej wskazywanej przez px, czyli w tej chwili zmiennej x, czyli 0.5 */ x = 0.5; cout << "*px = " << *px << " x = " << x << endl; //*px = 0.5 x = 0.5 /* Zauważmy, że *px, będąc nazwą zmiennej typu double wskazywanej przez px, może być użyte po lewej stronie przypisania. */ *px = 5*x; /*Ponieważ w tej chwili px wskazuje na x, jest to równoważne przypisaniu x = 5*x zatem drukując wartości x i *px otrzymujemy to samo */ cout << "*px = " << *px << " x = " << x << endl; //*px = 2.5 x =
31 Wskaźniki do zmiennych /*Wskaźnikowi pz przypiszmy wartość wskaźnika px, czyli adres zmiennej x */ pz = px; //Zatem w tej chwili x, *px i *pz oznaczają to samo cout << *pz = " << *pz << endl; //*pz = 2.5 cout << "py = " << py << endl; //Zmienna ta jest zmienną wskaźnikową, więc jej wartością jest adres zmiennej y. Zatem wstawienie py do strumienia wyjściowego spowoduje wypisanie adresu zmiennej y np. py = 0xbffffa30 A jaki adres ma sama zmienna py? Żeby to sprawdzić, możemy wydrukować wartość wyrażenia &py: wartością tą jest właśnie adres zmiennej py (a nie adres będący wartością py): */ cout << "&py = " << &py << endl; //np. &py = 0xbffffa18 31
32 Wskaźniki do zmiennych Przykład 2.Deklarujemy dwie zmienne x i y typu double i dwa wskaźniki pmin i pmax typu double*. Następnie wczytujemy dwie liczby do zmiennych x i y, po czym ustawiamy wskaźniki pmin i pmax w ten sposób, aby pmin wskazywało ma mniejszą z liczb x i y, a pmax na większą z nich. Używając następnie operatora dereferencji drukujemy najpierw mniejszą, potem większą z liczb. #include <iostream> using namespace std; int main() { double x, y, *pmin, *pmax; cout << "Podaj dwie liczby: "; cin >> x >> y; if (x < y) { pmin = &x; pmax = &y; else { pmin = &y; pmax = &x; cout << "Min = " << *pmin << endl; cout << "Max = " << *pmax << endl; 32
33 Przykład klasy- Ulamek Napisz w pliku Ulamek.h deklarację klasy Ulamek, w której przechowujemy następujące informacje o ułamku: licznik i mianownik(>0) oraz metody pomocnicza metoda prywatna obliczająca NWD dwóch liczb całkowitych konstruktor bezparametrowy (ustawia ułamek 0/1) konstruktor ustalający wartość ułamka na podstawie parametru całkowitego konstruktor ustalający wartość ułamka na podstawie przekazanych przez parametry wartości licznika i mianownika metoda Ustaw ustalająca wartość ułamka na podstawie przekazanych przez parametry wartości licznika i mianownika metoda Skroc skracająca ułamek metoda tostring zwracająca reprezentację tekstową ułamka w formie l/m metody PodajMianownik i PodajLicznik zwracające wartości odpowiednich pól klasy metodę Suma zwracającą w wyniku ułamek będący sumą ułamka na rzecz którego wykonywana jest metoda i ułamka przekazanego przez parametr metodę Iloczyn zwracającą w wyniku ułamek będący iloczynem ułamka na rzecz którego wykonywana jest metoda i ułamka przekazanego przez parametr oraz operatory dwuargumentowe + (suma),* (iloczyn) i == (równe). Napisz implementację powyższych metod w pliku Ulamek.cpp. Zadbaj, aby zawsze mianownik był >0. 33
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
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ółowoKLASY cz.1. Dorota Pylak
KLASY cz.1 Dorota Pylak Do czego służą klasy? 2 W programowaniu obiektowym posługujemy się obiektami. Obiekty charakteryzują się: cechami (inaczej - atrybutami lub stanami) operacjami, które na nich można
Bardziej szczegół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ół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ółowoKLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany
KLASA UCZEN Napisz deklarację klasy Uczen, w której przechowujemy następujące informacje o uczniu: imię, nazwisko, średnia (pola prywatne), poza tym klasa zawiera metody: konstruktor bezparametrowy (nie
Bardziej szczegół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 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ół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ół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 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ół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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoZASADY PROGRAMOWANIA KOMPUTERÓW
POLITECHNIKA WARSZAWSKA Instytut Automatyki i i Robotyki ZASADY PROGRAMOWANIA KOMPUTERÓW Język Język programowania: C/C++ Środowisko programistyczne: C++Builder 6 Wykład 9.. Wskaźniki i i zmienne dynamiczne.
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ółowoAlgorytmy i język C++
Wykład 6 Wskaźniki Wskaźnik nie przechowuje wartości zmiennej ale, podobnie jak tablica, wskazuje miejsce w pamięci, w którym znajduje się zmienna danego typu. W poniższym przykładzie symbol * pomiędzy
Bardziej szczegółowoWstęp do programowania
wykład 10 Agata Półrola Wydział Matematyki i Informatyki UŁ semestr zimowy 2018/2019 Przesyłanie argumentów - cd Przesyłanie argumentów do funkcji - tablice wielowymiarowe Przekazywanie tablic wielowymiarowych
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 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ół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ół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ół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ółowoPodstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
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ół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ółowoZmienne, stałe i operatory
Zmienne, stałe i operatory Przemysław Gawroński D-10, p. 234 Wykład 2 4 marca 2019 (Wykład 2) Zmienne, stałe i operatory 4 marca 2019 1 / 21 Outline 1 Zmienne 2 Stałe 3 Operatory (Wykład 2) Zmienne, stałe
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ół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ół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ół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ół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ółowoZadania z podstaw programowania obiektowego
Zadania z podstaw programowania obiektowego 1. Napisać klasę Lista, której zadaniem będzie przechowywanie listy liczb całkowitych. Klasa ta ma mieć następujące pola prywatne: int* liczby; tablica, w której
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ół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ół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ółowoKurs WWW. Paweł Rajba. pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/
Paweł Rajba pawel@ii.uni.wroc.pl http://pawel.ii.uni.wroc.pl/ Spis treści Wprowadzenie Automatyczne ładowanie klas Składowe klasy, widoczność składowych Konstruktory i tworzenie obiektów Destruktory i
Bardziej szczegółowoPodstawy algorytmiki i programowania - wykład 4 C-struktury
1 Podstawy algorytmiki i programowania - wykład 4 C-struktury Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy
Bardziej szczegółowoProgramowanie 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
Bardziej szczegółowoStruktury Struktura polami struct struct struct struct
Struktury Struktura jest zbiorem zmiennych występujących pod wspólna nazwą. Zmienne wchodzące w skład struktury nazywane są polami lub elementami, a czasem członkami struktury. Struktury używamy, jeśli
Bardziej szczegółowo2.4 Dziedziczenie. 2.4 Dziedziczenie Przykłady programowania w C - kurs podstawowy
2.4 Dziedziczenie Poprzednie dwa rozdziały które dotyczyły zagadnienia automatów komórkowych na przykładach programów w C++. Mogłyby one sugerować że niekoniecznie trzeba programować obiektowo aby napisać
Bardziej szczegółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
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ół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ę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ół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ół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ół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ół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ół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ółowoProgramowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30
Programowanie w C++ Wykład 9 Katarzyna Grzelak 14 maja 2018 K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe plus
Bardziej szczegółowoPrzeciąż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
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ół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ółowoProgramowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki
Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:
Bardziej szczegółowoProgramowanie obiektowe
Wykład 2 28 lutego 2019 Plan wykładu 1 2 3 4 5 Plan wykładu 1 2 3 4 5 Krótki opis C Obiektowy, z kontrolą typów; automatyczne odśmiecanie; standardy ISO i ECMA; podobny składniowo do C++; Język C Krótka
Bardziej szczegółowoJava: kilka brakujących szczegółów i uniwersalna nadklasa Object
Java: kilka brakujących szczegółów i uniwersalna nadklasa Object Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU Konstrukcja obiektów Niszczenie obiektów i zwalnianie zasobów
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 6 1 SPECYFIKATOR static Specyfikator static: Specyfikator ten powoduje, że zmienna lokalna definiowana w obrębie danej funkcji nie jest niszczona
Bardziej szczegółowoProgramowanie obiektowe i C++ dla matematyków
Programowanie obiektowe i C++ dla matematyków Bartosz Szreder szreder (at) mimuw... 8 XI 2 1 Sposoby przekazywania argumentów Powiedzmy, że chcemy napisać funkcję, która zamieni miejscami wartość dwóch
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ół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ółowoC-struktury wykład. Dorota Pylak
C-struktury wykład Dorota Pylak C-struktury W języku C++, jak w każdym języku obiektowym, mamy możliwość definiowania własnych typów danych, wraz z określeniem operacji, jakie na tych danych można wykonywać.
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ół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ół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ół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ół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ół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ół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ół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ółowoISO/ANSI C - funkcje. Funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje. ISO/ANSI C - funkcje
Funkcje (podprogramy) Mianem funkcji określa się fragment kodu, który może być wykonywany wielokrotnie z różnych miejsc programu. Ogólny zapis: typ nazwa(argumenty) ciało funkcji typ określa typ danych
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ół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 w języku C++
Programowanie w języku C++ Część siódma 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 tych materiałów nie zastąpi
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ół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ółowoZajęcia nr 2 Programowanie strukturalne. dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej
Zajęcia nr 2 Programowanie strukturalne dr inż. Łukasz Graczykowski mgr inż. Leszek Kosarzewski Wydział Fizyki Politechniki Warszawskiej Pętla while #include using namespace std; int main ()
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ół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ółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 5
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 5 1 SPECYFIKATOR const Specyfikator (przydomek) const: Umieszczenie przed nazwą zmiennej specyfikatora const w jej definicji informuje kompilator,
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ół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ółowoProgramowanie obiektowe, wykład nr 7. Przegląd typów strukturalnych - klasy i obiekty - c.d.
Dr hab. inż. Lucyna Leniowska, prof. UR, Zakład Mechatroniki, Automatyki i Optoelektroniki, IT Programowanie obiektowe, wykład nr 7 Przegląd typów strukturalnych - klasy i obiekty - c.d. Klasa - powtórzenie
Bardziej szczegółowowykład V uzupełnienie notatek: dr Jerzy Białkowski Programowanie C/C++ Język C++ klasy i obiekty wykład V dr Jarosław Mederski Spis Język C++ - klasy
i obiekty Programowanie i obiekty uzupełnienie notatek: dr Jerzy Białkowski i obiekty 1 2 3 4 i obiekty Obiektowość języka C++ Na tym wykładzie poznamy: ˆ Klasa (w języku C++ rozszerzenie struktury, typ
Bardziej szczegółowoProgramowanie komputerowe. Zajęcia 7
Programowanie komputerowe Zajęcia 7 Klasy Klasy to typy danych, które pozwalają na zgromadzenie w jednej zmiennej (obiekcie) zarówno danych jak i operacji związanych z tymi danymi. Obiekt danej klasy może
Bardziej szczegółowoLab 9 Podstawy Programowania
Lab 9 Podstawy Programowania (Kaja.Gutowska@cs.put.poznan.pl) Wszystkie kody/fragmenty kodów dostępne w osobnym pliku.txt. Materiały pomocnicze: Wskaźnik to specjalny rodzaj zmiennej, w której zapisany
Bardziej szczegółowoWstę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
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ół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ółowoProgramowanie obiektowe
Programowanie obiektowe Laboratorium 3 i 4 - przypomnienie wiadomości o OOP na przykładzie Javy mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 8 marca 2017 1 / 20 mgr inż. Krzysztof Szwarc
Bardziej szczegół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ółowo