Programowanie obiektowe C++
|
|
- Dariusz Julian Stachowiak
- 8 lat temu
- Przeglądów:
Transkrypt
1 Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 1 Witold Dyrka witold.dyrka@pwr.wroc.pl 10/10/2011
2 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy Bjarne Stroustrupa do kursu Foundations of Engineering II (C++) prowadzonego w Texas A&M University przykładowe programy Jerzego Grębosza do książki Symfonia C++ Standard Dziękuję dr inż. lek. med. Marcinowi Masalskiemu za udostępnienie materiałów do wykładu w roku ak. 2010/11
3 Program wykładów 0. Bezpieczeństwo typów. Kontener vector. Obsługa błędów (26/09/2011) 1. Abstrakcja i enkapsulacja: klasy i struktury. Typ wyliczeniowy (10/10/2011) 2. Polimorfizm: przeładowanie funkcji i operatorów (24/10/2011) 3. Zarządzanie pamięcią: konstruktory, destruktory. Konwersje (21/11/2011) 4. Dziedziczenie (05/11/2011) 5. Programowanie uogólnione: szablony (19/12/2011) 6. Projektowanie programów orientowanych obiektowo (02/01/2012) 7. Kolokwium zaliczeniowe (16/01/2012)
4 Program laboratorium Techniki programowania orientowanego obiektowo w języku C++ Enkapsulacja i polimorfizm (lista 1) Zarządzanie pamięcią (lista 2) Dziedziczenie i abstrakcja (lista 3) Programowanie uogólnione (lista 4?) Obsługa błędów i odrobaczanie programu Korzystanie z biblioteki standardowej
5 Materiały Literatura Bjarne Stroustrup. Programowanie: Teoria i praktyka z wykorzystaniem C++. Helion (2010) Jerzy Grębosz. Symfonia C++ standard. Edition 2000 (2008) Dowolny podręcznik programowania zorientowanego obiektowo w języku C++ w standardzie ISO 98 Środowisko programistyczne Microsoft Visual C++ (rekomendowane) Dowolne środowisko korzystające z GCC
6 Warunki zaliczenia Kolokwium zaliczeniowe 16/01/2012 w czasie wykładu jedno kolokwium poprawkowe zaliczenie od >50% Uwaga! jeśli ktoś ma braki z programowania zapraszam na wykład pt. Języki programowania w środę o do sali 1.30/C-13
7 Zasady Nie toleruję plagiatów dot. programów na laboratorium Nie toleruję ściągania dot. kolokwium i sprawdzianów na laboratorium Zachęcam do korzystania z konsultacji ze mną: PT 10-11, pok. 118A/D-1 pomiędzy sobą
8 Plan na dziś Klasy Implementacja i interfejs Konstruktory Funkcje składowe Składowe stałe Składowe statyczne Typ wyliczeniowy
9 Klasy Klasa bezpośrednio reprezentuje pojęcie w programie Jeśli o czymś można myśleć jako o oddzielnym bycie, to prawdopodobnie może to być klasą lub obiektem klasy Np. wektor, macierz, strumień wejściowy, łańcuch znakowy, szybka transformata Fouriera, kontroler zaworu, ramię robota, sterownik urządzenia, obraz na ekranie, okno dialogowe, wykres, okno, odczyt temperatur, zegar Klasa jest typem zdefiniowanym przez użytkownika, który określa jak tworzyć i używać obiekty tego typu Klasy po raz pierwszy wprowadzono w języku Simula67
10 Klasa, obiekt, zmienna class Pralka { // ta klasa nazywa się Pralka // Ciało klasy //... Pralka czerwona; int numer; Pralka *wskaznik; // definicja zmiennej czerwona typu Pralka // powstaje nowy obiekt, który otrzymuje nazwę czerwona // definicja zmiennej numer typu int // powstaje nowy obiekt, który otrzymuje nazwę numer // definicja wskaznika na typ Pralka Pralka &ruda = czerwona; // definicja referencji ruda do zmiennej czerwona Słowniczek: Klasa typ danych użytkownika Obiekt miejsce w pamięci przechowujące dane określonego typu Zmienna nazwany obiekt
11 Dane składowe klasy class Pralka { public: // ta klasa nazywa się Pralka // int nr_programu; // dane składowe (przechowują informacje) float temperatura_prania; string model; // czerwona.model = Frania ; // dostęp do danej składowej model zmiennej czerwona wskaznik = &czerwona; // ustawienie wskaznika na zmiennej czerwona wskaznik->model = Frania ; ruda.model = Frania ; // dostęp przez wskaźnik // dostęp przez referencję
12 Funkcje składowe klasy (metody) class Pralka { // ta klasa nazywa się Pralka public: int pierz(int program); // funkcje składowe (robią coś z danymi składowymi) void wiruj(int minuty); int nr_programu; // dane składowe (przechowują informacje) float temperatura_prania; string model; float krochmalenie(void); // znowu funkcja składowa int x = czerwona.pierz(1); int y = ruda.pierz(2); // wywołanie funkcji składowej pierz() dla czerwona // wywołanie funkcji składowej pierz() dla referencji ruda wskaznik = &czerwona; int z = wskaznik->pierz(3); // wywołanie funkcji składowej pierz() dla wskaznika
13 Definiowanie funkcji składowych wewnątrz ciała funkcji inline class osoba { public: string nazwisko; int wiek; // Definicje funkcji składowych: ==================================== void zapamietaj(const string &napis, int lata) { nazwisko = napis; wiek = lata; } // void wypisz() { cout << "\t" << nazwisko << ", lat: " << wiek << endl; } Kiedy? - Tylko krótkie funkcje, których ciało zajmuje do 2 linijek. - Kompilator (jeśli zechce) potraktuje je jako funkcje w linii, czyli inline
14 Definiowanie funkcji składowych na zewnątrz ciała funkcji class osoba { public: string nazwisko; int wiek; // Deklaracje funkcji składowych: ================================ void zapamietaj(const string &napis, int lata); void wypisz(); // Definicje funkcji składowych: ==================================== void osoba::zapamietaj(const string &napis, int lata) { nazwisko = napis; wiek = lata; } // void osoba::wypisz() { cout << "\t" << nazwisko << ", lat: " << wiek << endl; }
15 Inicjowanie obiektu typu użytkownika konstruktor Tworząc własny typ danych potrzebujemy określić sposób inicjowania obiektów tego typu: służy do tego konstruktor Konstruktor zawsze nazywa się tak samo jak jego klasa class osoba { public: string nazwisko; int wiek; // Deklaracje konstruktorów: =================================== osoba(const string &napis, int lata) : nazwisko(napis), wiek(lata) { osoba(int lata) : nazwisko("nn"), wiek(lata) { // Deklaracje funkcji składowych: ================================ void zapamietaj(const string &napis, int lata); void wypisz();
16 Interfejs i implementacja klasy class X { // klasa o nazwie X public: // funkcje // typy // publiczne składowe klasy interfejs użytkownika // (dostępne dla wszystkich) // dane (najczęściej lepiej, żeby były prywatne) private: // funkcje // typy // dane // priwatne składowe klasy szczegóły implementacyjne // (dostępne tylko dla składowych klasy)
17 Klasy i struktury Klasy mogą mieć dwie bliźniacze formy: class i struct Składowe klasy są domyślnie prywatne, czyli zapis: class X { int mf(); // oznacza tyle co: class X { private: int mf(); // Więc: X x; // zmienna x typu X int y = x.mf(); // błąd kompilacji: mf jest prywatna (niedostępna)
18 Klasy i struktury (2) Klasy mogą mieć dwie bliźniacze formy: class i struct Składowe struktury są domyślnie publiczne, czyli zapis: struct X { int m; // oznacza tyle co: class X { public: int m; // Rodzi się pytanie po co ukrywać składowe?
19 Po co komu prywatne składowe? Aby stworzyć przejrzysty interfejs klasy Dane i zagmatwane funkcje można ukryć Aby kontrolować niezmienniki Dzięki ograniczonemu zbiorowi funkcji z dostępem Aby ułatwić debugowanie Zawężenie grona podejrzanych Aby umożliwić zmianę reprezentacji (danych składowych) Wystarczy zmienić ograniczony zbiór funkcji W przypadku składowej publicznej nie można nigdy wiedzieć, kto ją używa
20 Struktura tylko dane (jak w języku C) // najprostsza wersja Date (tylko dane) struct Date { int y,m,d; // rok, miesiąc, dzień my_birthday: y m d Date: Date my_birthday; // zmienna typu Date (obiekt) my_birthday.y = 12; my_birthday.m = 30; my_birthday.d = 1950; // Ups! (nie ma dnia 1950 w miesiącu 30) // Błąd nie został zgłoszony, ale dalej w programie // będziemy mieli problemy
21 Struktura tylko dane (jak w języku C) podejście 2 // prosta wersja Date (dodaliśmy kilka funkcji pomocnicznych) struct Date { int y,m,d; // rok, miesiąc, dzień my_birthday: y Date: m d Date my_birthday; // zmienna typu Date (obiekt) // funkcje pomocnicze: void init_day(date& dd, int y, int m, int d); void add_day(date&, int n); // // sprawdź poprawność daty i inicjalizuj // zwiększ obiekt Date o n dni init_day(my_birthday, 12, 30, 1950); // błąd czasu wykonania: // nie ma dnia 1950 w miesiącu 30 Świetnie, ale nie ma gwarancji, że użytkownik struktury użyje funkcji init_day() po utworzeniu zmiennej typu Date.
22 Struktura w stylu C++ my_birthday: y Date: m // prosta Date // gwarantuje inicjalizację przy użyciu konstruktora d // zapewnia pewną wygodę notacyjną struct Date { int y,m,d; // rok, miesiąc, dzień Date(int y, int m, int d); // konstruktor: sprawdza poprawność daty i inicjuje void add_day(int n); // zwiększa datę o n dni 1950 // Date my_birthday; // błąd: my_birthday nie zainicjowane (I dobrze!) Date my_birthday(12, 30, 1950); // ups! Błąd czasu wykonania Date my_day(1950, 12, 30); // ok my_day.add_day(2); // 1 stycznia 1951 my_day.m = 14; // grrrhh! (teraz my_day jest niepoprawną datą) Świetnie, poprawna inicjacja jest zagwarantowana. Niestety, publiczny dostęp do danych składowych Date grozi zepsuciem daty 12 30
23 Klasa (z kontrolą dostępu) m 12 // prosta Date (z kontrolą dostępu) class Date { d 30 int y,m,d; // rok, miesiąc, dzień public: Date(int y, int m, int d); // konstruktor: sprawdza poprawność daty i inicjuje // funkcje dostępowe: void add_day(int n); // zwiększa datę o n dni int month() { return m; } int day() { return d; } int year() { return y; } // Date my_birthday(1950, 12, 30); cout << my_birthday.month() << endl; my_birthday.m = 14; my_birthday: y Date: 1950 // ok // możemy odczytać miesiąc // błąd: składowa Date::m jest prywatna
24 Niezmienniki Pojęcie poprawnej daty jest szczególnym przypadkiem pojęcia poprawnej wartości Zasada: zagwarantować poprawne wartości dla projektowanego typu (poprawny stan obiektu) Inaczej musielibyśmy cały czas sprawdzać poprawność danych lub liczyć, że zrobi to użytkownik klasy Regułę opisującą poprawną wartość nazywa się niezmiennikiem W przypadku daty jest to wyjątkowo trudne (28 luty, rok przestępny itd.) Jeśli nie można znaleźć dobrego niezmiennika pracujesz na samych czystych danych Użyj struktury Pierwszą opcją jest jednak zawsze szukanie niezmienników!
25 Prosty konstruktor klasy // prosta Date (niektórzy wolą interfejs klasy na początku dlaczego?) d 30 class Date { public: Date(int y, int m, int d); // konstruktor: sprawdza poprawność daty i inicjuje void add_day(int n); int month(); // private: int y,m,d; // rok, miesiąc, dzień Date::Date(int yy, int mm, int dd) :y(yy), m(mm), d(dd) { /* */ // zwiększa datę o n dni my_birthday: y Date: m // definicja konstruktora klasy // inicjacja składowych void Date::add_day(int n) { /* */ // definicja funkcji
26 Konstruktor z kontrolą poprawności // prosta Date (co zrobimy z nieprawidłową datą) class Date { public: class Invalid { // użyta jako rakieta sygnalizacyjna // przy obsłudze wyjątków Date(int y, int m, int d); // sprawdza poprawność daty i inicjuje // private: int y,m,d; // rok, miesiąc, dzień bool check(int y, int m, int d); // czy (y,m,d) jest poprawną datą? Date:: Date(int yy, int mm, int dd) : y(yy), m(mm), d(dd) // inicjuje dane składowe { if (!check(y,m,d)) throw Invalid(); // sprawdza poprawność daty }
27 Wyliczenia Wyliczenie enum (ang. enumaration) jest typem użytkownika określającym zestaw wartości (elementy wyliczenia) Na przykład: enum Month { jan=1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec Month m = feb; m = 7; // błąd: nie można przypisać int do Month int n = m; // ok: możemy dostać wartość liczbową Month Month mm = Month(7); // konwersja typu int na Month (nie sprawdzana)
28 Zastosowanie wyliczeń Prosta lista stałych enum { red, green int a = red; enum { red, blue, purple // enum { } nie definiuje zakresu // red jest dostępne tutaj // błąd: red jest już zdefiniowany Typ z listą stałych enum Day { sun, mon, tue, /* */ // domyślnie: sun==0, mon==1, tue==2 enum Color { red=100, green=1, blue=10, /* */ Day m1 = sun; Day m2 = red; Day m3 = 7; int i = m1; // błąd: red nie jest wartością Day // błąd: 7 nie jest wartością Day // ok: element wyliczenia jest konwertowany do // swojej wartości, i==0
29 Klasa z wyliczeniem // prosta Date (używa typu Month) class Date { public: my_birthday: y enum Month { jan=1, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec Date(int y, Month m, int d); // sprawdza poprawność daty i inicjuje // private: int y; // rok Month m; int d; // dzień Date: m d Date my_birthday(1950, 30, Date::dec); Date my_birthday(1950, Date::dec, 30); // błąd: 2. argument nie jest miesiącem // ok enum pomaga kontrolować poprawność // zwróć też uwagę na zakres: Date::dec
30 Składniki stałe klasy (const) class Date { public: // int day() const { return d; } void add_day(int n); // // stały składnik: nie może modyfikować // nie-stały składnik: może modyfikować Date d(2000, Date::jan, 20); const Date cd(2001, Date::feb, 21); // zmienna d typu Date // stała cd typu Date cout << d.day() << " " << cd.day() << endl; // ok d.add_day(1); // ok cd.add_day(1); // błąd: cd jest const // Tylko stałe funkcje składowe są dopuszczane // do działania na stałych obiektach klasy
31 Składniki stałe klasy (2) // Date d(2004, Date::jan, 7); const Date d2(2004, Date::feb, 28); d2 = d; // błąd: d2 jest const d2.add(1); // błąd: d2 jest const d = d2; // w porządku d.add(1); // w porządku // zmienna // stała d2.f(); // Taka operacja powinna zostać wykonana wtedy i tylko wtedy, gdy // funkcja składowa f() nie modyfikuje danych składowych obiektu d2 // Jak to zapewnić? (zakładając, że tego właśnie chcemy)
32 Składniki stałe klasy (3) // Rozróżnij pomiędzy funkcjami, które mogą modyfikować obiekty // I tymi, które nie mogą zwanymi stałymi funkcjami składowymi class Date { public: // int day() const; // pobierz dzień (w zasadzie jego kopię) // void add_day(int n); // przesuń datę o n do przodu // const Date dx(2008, Month::nov, 4); int d = dx.day(); // w porządku dx.add_day(4); // błąd: nie można modyfikować stałych danych
33 Dobry interfejs klasy Minimalny Tak mały jak to możliwe Kompletny I nie mniejszy Bezpieczny dla typów (ang. type-safe) Uwaga na kolejność argumentów Poprawnie określać stałe składniki klasy (ang. const-correct)
34 Minimalny zestaw składowych Najbardziej podstawowe operacje Konstruktor domyślny (domyślnie: nie robi nic lub brak domyślnego konstruktora jeśli zadeklarowano inny konstruktor Konstruktor kopiujący (domyślnie: kopiuje składowe) Operator przypisania (domyślnie: kopiuje składowe) Destruktor (domyślnie: nie robi nic) Na przykład Date d; Date d2 = d; d = d2; // błąd: brak domyślnego konstruktora (zadeklarowaliśmy inny!) // ok: inicjacja kopią (kopiuje elementy domyślne) // ok: przypisanie kopii (kopiuje elementy domyślne)
35 Interfejs klasy i funkcje pomocnicze Chcemy minimalny interfejs klasy (zbiór funkcji pomocnicznych), bo to: Ułatwia zrozumienie klasy Upraszcza debugowanie Upraszcza pielęgnację Potrzebujemy funkcji pomocniczych, operujących na obiektach klasy, ale zdefiniowanych poza klasą, np. == (równość),!= (nierówność) next_weekday(), next_sunday()
36 Funkcje pomocnicze Date next_sunday(const Date& d) { // ma dostęp do obiektu d poprzez d.day(), d.month(), oraz d.year() // tworzy nowy obiekt typu Date który zwraca } Date next_weekday(const Date& d) { /* */ } bool operator==(const Date& a, const Date& b) { return a.year()==b.year() && a.month()==b.month() && a.day()==b.day(); } bool operator!=(const Date& a, const Date& b) { return!(a==b); }
37 Funkcje zaprzyjaźnione Czasem warto dać funkcji pomocniczej dostęp do prywatnych składowych klasy np. zamiast tworzenia funkcji day(), month(), year(). class Date { public: //.. friend void print(date &d) const; // funkcja zaprzyjaźniona wyświetlająca datę private: int y,m,d; void print(date &d) const { cout << "Today is " << d.d << "/" << d.m << "/" << d.y << endl; } Date dx; print(&dx);
38 Składniki statyczne...czyli składniki wspólne dla wszystkich obiektów danej klasy ( zmienne globalna dla klasy ) Zastosowania: Do porozumiewania się pomiędzy obiektami klasy (jako flaga) Jako istniejących licznik obiektów danej klasy Gdy pewna cecha będzie się zmieniać jednocześnie dla wszystkich obiektów danej klasy Dostęp do wejścia/wyjścia (np. pliku) - wspólnego dla wszystkim obiektów klasy
39 Składniki statyczne przykład class piorko { enum tak_czy_nie { nie, tak } ; int poz_x, poz_y ; static int zezwolenie ; string kolor ; public : // funkcje void jazda(int x, int y); static void czy_mozna(tak_czy_nie odp) { dana statyczna tu: prywatna funkcja statyczna zezwolenie = odp ; // składnik statyczny zezwolenie // poz_x = 5 ; // błąd! bo składnik zwykły poz_x // Funkcja statyczna może odwoływać się // tylko do składników statycznych klasy } piorko(const string kol) : kolor(kol), poz_x(0), poz_y(0) {
40 Składniki statyczne przykład (kont.) void piorko::jazda(int x, int y) { cout << "Tu "<< kolor << " piorko : " ; if(zezwolenie) { poz_x = x ; poz_y = y ; cout << "Jade do punktu ("<< poz_x << ", " << poz_y << ")\n" ; } else { cout << " Nie wolno mi jechac!!!!!!!!!!!!! \n" ; } } int piorko::zezwolenie = piorko::nie; // Daną statyczną definujemy i inicjujemy poza ciałem klasy // Wyjątek: stała statyczna int main() { piorko::czy_mozna(piorko::tak) ; } // Funkcję statyczną możemy wywołać mimo, że // nie został jeszcze utworzony obiekt klasy piorko piorko czarne("smoliste"), zielone("zieloniutkie") ; czarne.jazda(0, 0) ; zielone.jazda(1100, 1100) ; piorko::czy_mozna(piorko::nie) ; czarne.jazda(10, 10) ; zielone.jazda(1020, 1020) ; zielone.czy_mozna(piorko::tak); czarne.jazda(50, 50) ; zielone.jazda(1060, 1060) ; // zabraniamy ruchu piórkom // zezwalamy w taki sposób
41 Dziś najważniejsze było to, że... Klasa reprezentuje pojęcie Obiekt jest ucieleśnieniem tej klasy Zmienna jest nazwanym obiektem Oddzielamy interfejs od implementacji (enkapsulacja) Zasady tworzenia dobrego interfejsu: minimalny, ale kompletny, zawiera funkcje zaprzyjaźnione bezpieczny dla typów, określa składowe stałe
42 A za 2 tygodnie... Polimorfizm: przeładowanie funkcji i operatorów
Języki programowania
Języki programowania Nowoczesne techniki programowania Wykład 4 Witold Dyrka witold.dyrka@pwr.wroc.pl 16-30/11/2011 Prawa autorskie Slajdy do wykładu powstały w oparciu o slajdy Bjarne Stroustrupa do kursu
Bardziej szczegółowoProgramowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 1 Witold Dyrka witold.dyrka@pwr.wroc.pl 8/10/2012 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Wprowadzenie do programowania obiektowego. Pojęcie struktury i klasy. Spotkanie 03 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Idea programowania obiektowego Definicja
Bardziej szczegół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ół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 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ół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ół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ół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ółowoProgramowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 5 Witold Dyrka witold.dyrka@pwr.wroc.pl 5/11/2012 Prawa autorskie itp. Niektóre slajdy do tego wykładu powstało w oparciu o: książkę
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, 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ół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ółowoWykład I. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład I - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2015 c Copyright 2015 Janusz Słupik Zaliczenie przedmiotu Do zaliczenia przedmiotu niezbędne jest
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny semestr III, studia stacjonarne I stopnia Rok akademicki 2015/2016 Pracownia nr 1 (21/23.09.2015) Rok akademicki 2015/2016, Pracownia nr 1 2/22
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 obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 2 Witold Dyrka witold.dyrka@pwr.wroc.pl 24/10/2011 Prawa autorskie itp. Wiele slajdów do tego wykładu powstało w oparciu o: slajdy
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ół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ół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ół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ół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ół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ół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ółowoInstrukcja do pracowni specjalistycznej z przedmiotu. Obiektowe programowanie aplikacji
Politechnika Białostocka Wydział Elektryczny Katedra Telekomunikacji i Aparatury Elektronicznej Instrukcja do pracowni specjalistycznej z przedmiotu Obiektowe programowanie aplikacji Kod przedmiotu: TS1C410201
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ół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ółowoWykład 1. Program przedmiotu. Programowanie (język C++) Literatura. Program przedmiotu c.d.:
Program przedmiotu Programowanie (język C++) Wykład 1. Język C a C++. Definiowanie prostych klas. Typy referencyjne. Domyślne wartości argumentów. PrzeciąŜanie funkcji. Konstruktory, destruktory. Definiowanie
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 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 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ół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ół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ółowoProgramowanie obiektowe C++
Programowanie obiektowe C++ Programowanie zorientowane obiektowo Wykład 4 Witold Dyrka witold.dyrka@pwr.wroc.pl 5/12/2011 Prawa autorskie itp. Niektóre slajdy do tego wykładu powstało w oparciu o: książkę
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ół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ółowoSzablony funkcji i szablony klas
Bogdan Kreczmer bogdan.kreczmer@pwr.wroc.pl Zakład Podstaw Cybernetyki i Robotyki Instytut Informatyki, Automatyki i Robotyki Politechnika Wrocławska Kurs: Copyright c 2011 Bogdan Kreczmer Niniejszy dokument
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ół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ół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ółowo2. Klasy cz. 2 - Konstruktor kopiujący. Pola tworzone statycznie i dynamicznie - Funkcje zaprzyjaźnione - Składowe statyczne
Tematyka wykładów 1. Wprowadzenie. Klasy cz. 1 - Język C++. Programowanie obiektowe - Klasy i obiekty - Budowa i deklaracja klasy. Prawa dostępu - Pola i funkcje składowe - Konstruktor i destruktor - Tworzenie
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ół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ół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ół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ół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ół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ół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ół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ół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ół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ółowoPolitechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe
Wydział Fizyki, Matematyki i Informatyki Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje w roku akademickim 01/013 Kierunek studiów: Informatyka Forma studiów: Stacjonarne Profil:
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ół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ółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 13 1 KLASY A ZASŁANIANIE NAZW Nazwy danych składowych i funkcji składowych mają zakres klasy, więc w obrębie klasy zasłaniają takie same nazwy spoza
Bardziej szczegółowoPolitechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2012/2013
Politechnika Krakowska im. Tadeusza Kościuszki Karta przedmiotu obowiązuje studentów rozpoczynających studia w roku akademickim 01/013 Wydział Fizyki, Matematyki i Informatyki Kierunek studiów: Informatyka
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ółowoKARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie I C6
KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego.
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ółowoJęzyki i paradygmaty programowania
Języki i paradygmaty programowania WYDZIAŁ ELEKTRONIKI i INFORMATYKI dr inż. Robert Arsoba Politechnika Koszalińska Wydział Elektroniki i Informatyki POLITECHNIKA KOSZALIŃSKA 2009/2010 Materiały do wykładu
Bardziej szczegółowoWprowadzenie do szablonów szablony funkcji
Wprowadzenie do szablonów szablony funkcji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2006 2010 Bogdan Kreczmer Niniejszy dokument zawiera materiały do
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ółowoMETODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02
METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE Wykład 02 NAJPROSTSZY PROGRAM /* (Prawie) najprostszy przykład programu w C */ /*==================*/ /* Między tymi znaczkami można pisać, co się
Bardziej szczegółowoJęzyki i techniki programowania Ćwiczenia 2
Języki i techniki programowania Ćwiczenia 2 Autor: Marcin Orchel Spis treści: Język C++... 5 Przekazywanie parametrów do funkcji... 5 Przekazywanie parametrów w Javie.... 5 Przekazywanie parametrów w c++...
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ół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ół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ółowoKARTA PRZEDMIOTU. 1. Informacje ogólne. 2. Ogólna charakterystyka przedmiotu. Programowanie II C16
KARTA PRZEDMIOTU 1. Informacje ogólne Nazwa przedmiotu i kod (wg planu studiów): Nazwa przedmiotu (j. ang.): Kierunek studiów: Specjalność/specjalizacja: Poziom kształcenia: Profil kształcenia: Forma studiów:
Bardziej szczegółowoZaawansowane programowanie w C++ (PCP)
Zaawansowane programowanie w C++ (PCP) Wykład 4 - wzorce projektowe. dr inż. Robert Nowak - p. 1/18 Powtórzenie klasy autonomiczne tworzenie nowych typów: dziedziczenie i agregacja dziedziczenie: przedefiniowywanie
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ół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ół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ół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
Programowanie obiektowe 10.04.2017 W slajdach są materiały zapożyczone z https://www.ii.uni.wroc.pl/~prz/2012lato/cpp/slajdy/cpp5.ppt Przykład wykorzystania obiektu Obiekt X jest instancją klasy Y Obiekt
Bardziej szczegół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ółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Laboratorium 1. Wprowadzenie, środowisko programistyczne, pierwsze programy
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Laboratorium 1 Wprowadzenie, środowisko programistyczne, pierwsze programy 1 CEL ZAJĘĆ LABORATORYJNYCH: Wprowadzenie do programowania w języku C++ oraz
Bardziej szczegółowoJęzyk ludzki kod maszynowy
Język ludzki kod maszynowy poziom wysoki Język ludzki (mowa) Język programowania wysokiego poziomu Jeśli liczba punktów jest większa niż 50, test zostaje zaliczony; w przeciwnym razie testu nie zalicza
Bardziej szczegółowoJĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 12
JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM Wykład 12 1 KLASY ZAPRZYJAŹNIONE Jedna klasa (A) może zadeklarować przyjaźń z inną klasą (B). Oznacza to, że klasa B ma dostęp do wszystkich składników
Bardziej szczegółowoRóżne właściwości. Różne właściwości. Różne właściwości. C++ - klasy. C++ - klasy C++ - KLASY
Różne właściwości Funkcje tak samo jak zmienne mają swoje miejsce w pamięci, gdzie są zapisane. Można więc uzyskać ich adres. Podobnie jak adres tablicy jest zwracany przez jej nazwę, podaną bez nawiasu
Bardziej szczegół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ółowoKurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016
Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal
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ółowoPrzypomnienie o klasach i obiektach
Wykład 14 Programowanie obiektowe ciąg dalszy, str 1 Przypomnienie o klasach i obiektach -5 należydo int 314 należy do double false należy do boolean {27, 314,-15 należy do double[] wartość należy do 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ół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ół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ółowoReferencje do zmiennych i obiektów
Referencje do zmiennych i obiektów Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegółowoWykład V. Programowanie II - semestr II Kierunek Informatyka. dr inż. Janusz Słupik. Wydział Matematyki Stosowanej Politechniki Śląskiej
Wykład V - semestr II Kierunek Informatyka Wydział Matematyki Stosowanej Politechniki Śląskiej Gliwice, 2014 c Copyright 2014 Janusz Słupik Programowanie obiektowe Dziedziczenie (inheritance) - mechanizm
Bardziej szczegółowoEnkapsulacja, dziedziczenie, polimorfizm
17 grudnia 2008 Spis treści I Enkapsulacja 1 Enkapsulacja 2 Spis treści II Enkapsulacja 3 Czym jest interfejs Jak definuje się interfejs? Rozszerzanie interfejsu Implementacja interfejsu Częściowa implementacja
Bardziej szczegół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ół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ół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ółowoTechnologie obiektowe
WYKŁAD dr inż. Paweł Jarosz Instytut Informatyki Politechnika Krakowska mail: pjarosz@pk.edu.pl LABORATORIUM dr inż. Paweł Jarosz (3 grupy) mgr inż. Piotr Szuster (3 grupy) warunki zaliczenia Obecność
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ółowoPodstawy programowania. Wykład: 12. Struktury, unie, pola bitowe. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 12 Struktury, unie, pola bitowe 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Podstawy programowania Struktury 2 Struktury Struktury to złożone typy danych
Bardziej szczegółowoJęzyki i paradygmaty programowania Wykład 2. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/18 Literatura Języki i paradygmaty programowania Wykład 2 1. C. S. Horstman, G. Cornell, core Java 2 Podstawy, Helion 2003
Bardziej szczegółowoDokumentacja do API Javy.
Dokumentacja do API Javy http://java.sun.com/j2se/1.5.0/docs/api/ Klasy i obiekty Klasa jest to struktura zawierająca dane (pola), oraz funkcje operujące na tych danych (metody). Klasa jest rodzajem szablonu
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ółowo