JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 10

Podobne dokumenty
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 11

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 7

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 8

1 Historia i cechy C++ 2 PRZYDATNE KONSTRUKCJE

1 Historia i cechy C++ 2 PRZYDATNE KONSTRUKCJE

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

imię kod ulica prześlij Dzięki formularzom możliwe jest pobieranie danych, a nie tylko ich wyświetlanie.

Tworzenie kwerend. Nazwisko Imię Nr indeksu Ocena

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wprowadzenie. Wprowadzenie

Poniżej krótki opis/instrukcja modułu. Korekta podatku VAT od przeterminowanych faktur.

stworzyliśmy najlepsze rozwiązania do projektowania organizacji ruchu Dołącz do naszych zadowolonych użytkowników!

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 11. Katarzyna Grzelak. 13 maja K.Grzelak (Wykład 11) Programowanie w C++ 1 / 30

"Pies" P i e s \0. Prawidłowy zapis wymaga wykorzystania funkcji strcpy() z pliku nagłówkowego string.h: char txt[10]; strcpy(txt, Pies );

Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wyjątki. Wprowadzenie o. Wprowadzenie o

Katalog książek cz. 1

WYKŁAD 2 Historia rozwoju technik programowania. Granica pomiędzy programem a agentem. Cykl życia i podstawowe elementy składowe agenta.

Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12

Programowanie w C++ Wykład 9. Katarzyna Grzelak. 14 maja K.Grzelak (Wykład 9) Programowanie w C++ 1 / 30

Opis pliku XML Wersja 6.0

Przeciążanie metod i operatorów

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Programowanie w C++ Wykład 8. Katarzyna Grzelak. 15 kwietnia K.Grzelak (Wykład 8) Programowanie w C++ 1 / 33

I. 1) NAZWA I ADRES: Województwo Śląskie, ul. Ligonia 46, Katowice, woj. śląskie, tel. 32

Wykład nr 5. Temat: Klasy i abstrakcja danych, cz. I. W.S. Gilbert

Wykład 8: klasy cz. 4

Lekcja 1:.Powtórka. <head> <title>kurs HTML</title> </head> <body> <p>to jest tresc...</p> </body>

SENTE CMS zarządzanie treścią witryny internetowej

Kadry i Płace. Moduł Płace i Kadry składa się z siedmiu działów:

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

WYMAGANIA EDUKACYJNE Z PRZEDMIOTU PRACOWNIA URZĄDZEŃ TECHNIKI KOMPUTEROWEJ. dla klasy 1ia. Rok szkolny 2015/2016 Nauczyciel: Agnieszka Wdowiak

Statystyka - wprowadzenie

Instrukcja użytkownika

Wymagania edukacyjne z przedmiotu Systemy baz danych dla klasy 3iA Nauczyciel: Kornel Barteczko Rok szkolny: 2015/2016

WYSTAWIANIE FAKTUR I FAKTUR KORYGUJĄCYCH W DZIAŁALNOŚCI GOSPODARCZEJ ŚRODA Z KSIĘGOWĄ JOANNA MATUSIAK

I. 1) NAZWA I ADRES: Fundacja Małych i Średnich Przedsiębiorstw, ul. Smocza 27,

amjam 2015 Regulamin

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Temat: System plików NTFS. Wady i zalety. Master File Table

WPROWADZENIE Kurs DO WIT INTERNETU WSISIZ Wyższa Szkoła Informatyki Stosowanej i Zarządzania WIT

System CDN OPT!MA v Generator Raportów (GenRap) Kraków, Al. Jana Pawła II 41g tel. (12) , fax (12)

Funkcje. Spotkanie 5. Tworzenie i używanie funkcji. Przekazywanie argumentów do funkcji. Domyślne wartości argumentów

Rozdział 4 KLASY, OBIEKTY, METODY

I. 1) NAZWA I ADRES: Województwo Śląskie, ul. Ligonia 46, Katowice, woj. śląskie, tel. 32

Wykład 4: Klasy i Metody

Zapytanie ofertowe. Stworzenie inteligentnych narzędzi do generacji i zarządzania stron internetowych (SaaS+WEB2.0),

Nowe funkcje w programie Symfonia e-dokumenty w wersji Spis treści:

KASPERSKY LAB. Kaspersky Administration Kit wersja 6.0. Podręcznik administratora

Podstawy programowania skrót z wykładów:

I. 1) NAZWA I ADRES: Gmina Krasne, Krasne 121, Krasne, woj. podkarpackie, tel. 17

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Ok. Rozbijmy to na czynniki pierwsze, pomijając fragmenty, które już znamy:

Przestrzeń papier / model

Jak założyć blog na platformie blogów CEO w 3 krokach

Wstęp do programowania

Zmiany funkcjonalne wprowadzone w wersji

ALGORYTMY I STRUKTURY DANYCH

PARADYGMATY PROGRAMOWANIA Wykład 2

Wymagania edukacyjne z przedmiotu Pracownia aplikacji internetowych dla klasy 3iA Nauczyciel: Kornel Barteczko Rok szkolny: 2015/2016

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Projektowanie klas c.d. Projektowanie klas przykład

I. 1) NAZWA I ADRES: 26 Wojskowy Oddział Gospodarczy - JW 4809, ul. Juzistek 2, Zegrze, woj. mazowieckie, tel , faks

Instrukcja obsługi plusbank24

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Skróty klawiszowe Window-Eyes

Nowe funkcje w module Repozytorium Dokumentów

Poznań: Usługi hostelowe dla pacjentów WCO. Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - usługi

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Program dla praktyki lekarskiej. Instrukcja drukowania recept

I. 1) NAZWA I ADRES: Wojewódzki Ośrodek Terapii Uzależnień i Współuzależnienia w Toruniu, ul.

Przypomnienie o klasach i obiektach

Podstawy programowania. Wykład: 7. Funkcje Przekazywanie argumentów do funkcji. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Instrukcja korzystania z serwisu Geomelioportal.pl. - Strona 1/12 -

Wstęp do Programowania 2

Programowanie obiektowe w C++ Wykład 12

Wykład 5: Klasy cz. 3

WYMAGANIA EDUKACYJNE Z INFORMATYKI

CERTO program komputerowy zgodny z wytycznymi programu dopłat z NFOŚiGW do budownictwa energooszczędnego

Poprawiono wyświetlanie się informacji o nowych wiadomościach w przypadku, gdy wiadomość została przeczytana.

Poznań: Zakup i dostawa regałów magazynowych Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - dostawy

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 6. Karol Tarnowski A-1 p.

Programowanie obiektowe, wykład nr 6. Klasy i obiekty

Specyfikacja dotycząca modernizacji przepompowni ścieków należącej do oczyszczalni ścieków w Podrzeczu.

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Pola i metody statyczne

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia:

PRZEPROWADZENIE BADANIA Z OBSZARU POLITYKI SPOŁECZNEJ

TEMAT : KLASY DZIEDZICZENIE

Współpraca programów WINBUD Kosztorys i Symfonia Handel premium I Informacje ogólne

I. 1) NAZWA I ADRES: Instytut Transportu Samochodowego, ul. Jagiellońska 80,

Wykonanie i dostawa artykułów promocyjnych Numer ogłoszenia: ; data zamieszczenia: OGŁOSZENIE O ZAMÓWIENIU - dostawy

Transkrypt:

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 10 1

KLASY I OBIEKTY W definicji klasy dane składwe nie mgą być inicjalizwane. Mgą im być nadawane wartści za pmcą funkcji składwych klasy, (np. funkcji ustaw()) lub knstruktra klasy ( tym niec później...). Funkcje składwe klasy mżna definiwać: class Samchd { public: string mdel="punt"; // Błąd! int rk_prdukcji=2012; // Błąd! //... }; a) wewnątrz definicji klasy wówczas stają się funkcjami inline (zatem należy ten wariant stswać jedynie przy krótkich funkcjach); np.: class Liczba { int x; public: int y; vid drukuj() { cut<<x<<" "<<y<<endl; }; // definicja wewnątrz klasy vid przypisz(int xx) { x=xx; } // definicja wewnątrz klasy }; 2

KLASY I OBIEKTY b) na zewnątrz definicji klasy (zazwyczaj) wówczas należy skrzystać z peratra zasięgu :: by kreślić klasę, d której należy funkcja. class Pralka //fragment definicji klasy Pralka { int nr_prgramu; int temperatura_prania; public: vid pranie(int prgram,int temperatura); //deklaracja funkcji //... }; //---------------------------------------------------------- vid Pralka::pranie(int prgram,int temperatura) //zauważ :: { //funkcja zdefiniwana pza ciałem klasy //... } 3

KLASY I OBIEKTY Obiekty jak argumenty funkcji: 1. Przesyłanie przez wartść: dmyślnie biekty są przesyłane przez wartść (tak jak przy typach wbudwanych); funkcja twrzy kpię biektu zajmuje t czas (i pamięć); funkcja spza klasy pracując na biekcie przesłanym przez wartść (czyli jeg kpii) nie ma mżliwści mdyfikacji przesłaneg biektu. 2. Przesyłanie przez referencję: funkcja pracuje na ryginale nie jest twrzna kpia biektu; funkcja spza klasy pracując na biekcie przesłanym przez referencję ma mżliwść mdyfikacji przesłaneg biektu. 4

KLASY I OBIEKTY Przykład: 5

KLASY I OBIEKTY Prgramy biektwe złżne z wielu plików Każda klasa pwinna być zdefiniwana w sbnym pliku nagłówkwym (z rzszerzeniem.h), np.: mja_klasa.h Definicje funkcji składwych pszczególnych klas umieszczane są w sbnych plikach kdu źródłweg (z rzszerzeniem.cpp) tej samej pdstawwej części nazwy, c plik nagłówkwy, np.: mja_klasa.cpp Funkcja główna prgramu (main()) umieszczana jest we właściwym pliku prgramwym (z rzszerzeniem.cpp), np.: prgramik.cpp Pliki nagłówkwe są włączane (za pmcą dyrektywy #include) d każdeg pliku kdu źródłweg, w którym wykrzystywana jest dana klasa, np.: #include "mja_klasa.h" jest umieszczane na pczątku plików: mja_klasa.cpp raz prgramik.cpp 6

KLASY I OBIEKTY Prgramy biektwe złżne z wielu plików Dlaczeg każda klasa pwinna być zdefiniwana w sbnym pliku nagłówkwym? Zmiana w kdzie jedneg z plików składwych prjektu skutkuje kniecznścią kmpilacji wyłącznie teg pliku. Stwrzna klasa mże być wykrzystywana w wielu różnych prgramach. Strażnik nagłówka t zestaw dyrektyw preprcesra (kmpilacja warunkwa) chrniących użytkwników klasy przed myłkwym dwukrtnym włączeniem teg sameg pliku nagłówkweg, np.: #ifndef MOJA_KLASA_H_INCLUDED #define MOJA_KLASA_H_INCLUDED // tutaj właściwa treść pliku mja_klasa.h #endif // MOJA_KLASA_H_INCLUDED 7

KLASY I OBIEKTY Przykład: 8

KLASY I OBIEKTY Przykład: 9

Bardz przydatne funkcje składwe klasy: Knstruktr niczeg nie knstruuje (mim swej nazwy); Destruktr niczeg nie niszczy (mim swej nazwy); Knstruktr jest funkcją, która jest wywływana autmatycznie w mmencie twrzenia biektu. Destruktr jest funkcją, która jest wywływana autmatycznie w mmencie likwidwania biektu. Mżna zatem zlecić im pewne czynnści... 10

Typy wbudwane: mżna stwrzyć zmienną i d razu nadać jej wartść (inicjalizacja), np.: Klasy: flat zm=10.56; Dla biektu klasy przez nas stwrznej należy: 1. Stwrzyć biekt. 2. Wpisać wartść d danej składwej biektu. Np. jeśli mamy następującą klasę: class Dane {public: flat wartsc; }; T: Dane liczba; liczba.wartsc=10.56; Knstruktr umżliwia nadanie wartści pczątkwych biektm. 11

Knstruktr Jest t specjalna funkcja składwa klasy, która ma nazwę identyczną z nazwą klasy. np., jeśli mamy następującą klasę: class Rwer // definicja klasy Rwer { //... // ciał klasy }; t knstruktr mże mieć pstać (tu: tylk deklaracja wewnątrz ciała klasy): Rwer(); a jeg definicja (tu: na zewnątrz klasy): // deklaracja knstruktra klasy Rwer Rwer::Rwer() // definicja knstruktra klasy Rwer { //... // ciał knstruktra } 12

Rzbudujmy klasę Dane knstruktr: class Dane {public: flat wartsc; }; class Dane {public: flat wartsc; Dane(flat w); //knstruktr (deklaracja) }; Dane::Dane(flat w) //knstruktr (definicja) { wartsc=w; } A teraz mżemy stwrzyć biekt tak: Dane liczba(10.56); Ewentualnie tak: Dane liczba=dane(10.56); 13

Knstruktr Przed nazwą knstruktra nie mże być żadneg kreślenia typu zwracaneg (zatem nie mże być na kńcu jeg definicji słwa return). Knstruktr mże służyć d nadania wartści pczątkwych danym składwym biektu (jest więc dekratrem wnętrz...) Jeśli w klasie nie ma zdefiniwaneg żadneg knstruktra, t kmpilatr wygeneruje tzw. knstruktr dmniemany (jednak ten knstruktr nie wykna żadneg przypisania...) Knstruktr mże wywłać inną funkcję składwą swjej klasy. Przykład klasy z knstruktrem następny slajd: 14

Przykład: 15

Knstruktr jest funkcją, przy której najczęściej sptyka się przeładwanie nazwy. Rzbudwując nasz przykład: 16

Przykład: 17

Destruktr Jest t specjalna funkcja składwa klasy, która ma nazwę identyczną z nazwą klasy pprzedzną znakiem tyldy (~). np.: ~Dane(); - deklaracja destruktra klasy Dane. Przed nazwą destruktra nie mże być żadneg kreślenia typu zwracaneg. Destruktr jest funkcją, która jest wywływana autmatycznie w mmencie likwidwania biektu (tak tak, t już był...). Destruktr jest wywływany bez żadnych argumentów. W związku z tym jest funkcją, której nazwy nie mżna przeładwać. 18

Destruktr Destruktr sam niczeg nie likwiduje jeśli istnieje, t mże wyknać pewne prace prządkwe tuż przed tym, jak biekt zstanie zlikwidwany. Destruktr mże wywłać inną funkcję składwą swjej klasy. Jeśli w klasie nie ma zdefiniwaneg jawneg destruktra, kmpilatr sam wygeneruje destruktr. P c? (przykłady): Jeśli biekt dknał rezerwacji pamięci peratrem new, t przed likwidacją biektu należy tą pamięć zwlnić w destruktrze peratrem delete. Destruktr mże się przydać, gdy zliczane są biekty danej klasy. W knstruktrze licznik jest zwiększany jeden, natmiast w destruktrze zmniejszany 1 (jak zliczać biekty w dalszej części wykładu). Jeśli likwidacja biektu wymaga ddatkwych działań (wypisanie infrmacji, zlikwidwanie czegś na ekranie). 19

Definicja klasy Dane wzbgacna destruktr: class Dane { private: int rk_ur; string Imie, Nazwisk; public: Dane(string im, string naz, int ru) // knstruktr 1 {Imie=im; Nazwisk=naz; rk_ur=ru;} Dane(string im, string naz) // knstruktr 2 {Imie=im; Nazwisk=naz; rk_ur=0;} ~Dane() // destruktr {cut<<"likwiduje biekt nazwisku: "<<Nazwisk<<endl;} vid wyswietl(); // zwykła f. składwa }; 20

Knstruktr z argumentami dmyślnymi Knstruktry mgą psiadać argumenty dmyślne (wszystkie bądź nie). Przypmnienie: argumenty dmyślne umieszcza się najbardziej z prawej strny. Knstruktr dmyślny t taki knstruktr w którym wszystkie argumenty mają kreślne wartści dmyślne. W danej klasie mże istnieć tylk jeden knstruktr dmyślny. 21

Knstruktr z argumentami dmyślnymi Knstruktr dmyślny mże być alb wywłany bez pdania żadnych argumentów (wszystkie argumenty są wtedy dmyślne) alb z ich pdaniem. Dmyślne argumenty w knstruktrze dmyślnym deklaruje się wyłącznie w prttypie funkcji knstruktra w definicji klasy pliku nagłówkweg, np.: Klasa_pierwsza(int=0,flat=0,string= tekst ); czyli jest tak, jak gdyby istniały cztery knstruktry: Klasa_pierwsza(int,flat,string); Klasa_pierwsza(int,flat); Klasa_pierwsza(int); Klasa_pierwsza(); 22

Przykład: 23