Informatyka 2. Wykład nr 3 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc
|
|
- Błażej Laskowski
- 7 lat temu
- Przeglądów:
Transkrypt
1 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 3 ( )
2 Rok akademicki 2008/2009, Wykład nr 3 2/35 Plan wykładu nr 3 Programowanie obiektowe w języku C++ klasy a pliki nagłówkowe funkcje zaprzyjaźnione z klasą konstruktor i destruktor przeładowanie operatorów w klasie dziedziczenie
3 Rok akademicki 2008/2009, Wykład nr 3 3/35 Przykład nr 1 - Prosta klasa (1/2) /* Name: klasa1.cpp Copyright: Politechnika Białostocka, Wydział Elektryczny Author: Jarosław Forenc (jarekf@pb.edu.pl) Date: Description: Przykład prostej klasy */ #include <iostream> #include <string.h> using namespace std; class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: void zapisz(char *i, char *n, int w); void drukuj(); ;
4 Rok akademicki 2008/2009, Wykład nr 3 4/35 Przykład nr 1 - Prosta klasa (2/2) void osoba::zapisz(char *i, char *n, int w) strcpy(imie,i); strcpy(nazwisko,n); wiek = w; Jan Kowalski 30 void osoba::drukuj() cout << imie << " " << nazwisko; cout << " " << wiek << endl; int main() osoba os1; os1.zapisz("jan","kowalski",30); os1.drukuj(); system("pause"); return 0;
5 Rok akademicki 2008/2009, Wykład nr 3 5/35 Wskaźnik this funkcje wywoływane są zawsze na rzecz konkretnego obiektu do wnętrza funkcji przekazywany jest niejawnie wskaźnik do tego obiektu - tym adresem funkcja inicjalizuje swój wskaźnik zwany this w rzeczywistości funkcja zapisz(): void osoba::zapisz(char *i, char *n, int w) strcpy(imie,i); strcpy(nazwisko,n); wiek = w; ma następującą postać: void osoba::zapisz(char *i, char *n, int w) strcpy(this->imie,i); strcpy(this->nazwisko,n); this->wiek = w;
6 Rok akademicki 2008/2009, Wykład nr 3 6/35 Klasy a pliki nagłówkowe zazwyczaj definicje klas umieszcza się w plikach nagłówkowych *.h, natomiast definicje funkcji składowych w plikach *.cpp Przykład:
7 Rok akademicki 2008/2009, Wykład nr 3 7/35 Klasy a pliki nagłówkowe pliki *.h dołącza się do plików *.cpp dyrektywą #include nazwa.h w plikach nagłówkowych nie mogą występować definicje funkcji, chyba, Ŝe są one umieszczone bezpośrednio w klasie Przykład: osoba.h class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: void zapisz(char *i, char *n, int w); void drukuj(); ;
8 Rok akademicki 2008/2009, Wykład nr 3 8/35 Klasy a pliki nagłówkowe Przykład: w pliku osoba.cpp umieszczone są definicje funkcji składowych klasy osoba osoba.cpp #include <iostream> #include <string.h> #include "osoba.h" using namespace std; void osoba::zapisz(char *i, char *n, int w) strcpy(imie,i); strcpy(nazwisko,n); wiek = w; void osoba::drukuj() cout << imie << " " << nazwisko; cout << " " << wiek << endl;
9 Rok akademicki 2008/2009, Wykład nr 3 9/35 Klasy a pliki nagłówkowe Przykład: klasę osoba wykorzystujemy w pliku main.cpp main.cpp #include <iostream> #include <string.h> #include "osoba.h" int main() osoba os1; os1.zapisz("jan","kowalski",30); os1.drukuj(); system("pause"); return 0;
10 Rok akademicki 2008/2009, Wykład nr 3 10/35 Klasy a pliki nagłówkowe Przykład: w celu uniknięcia wielokrotnego dołączania tego samego pliku nagłówkowego stosuje się dyrektywy kompilacji warunkowej #ifndef, #define #endif osoba.h #ifndef OSOBA_H_ #define OSOBA_H_ class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: void zapisz(char *i, char *n, int w); void drukuj(); ; #endif
11 Rok akademicki 2008/2009, Wykład nr 3 11/35 Funkcje zaprzyjaźnione z klasą funkcja zaprzyjaźniona z klasą to funkcja, która nie będąc składnikiem klasy ma dostęp do wszystkich (takŝe prywatnych) składników klasy class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: void zapisz(char *i, char *n, int w); friend void funkcja(); ; void funkcja() osoba Nowak; Nowak.wiek = 20; funkcja moŝe przyjaźnić się z więcej niŝ jedną klasą nie ma znaczenia, w którym miejscu w klasie pojawia się deklaracja przyjaźni (sekcja private, protected, public) funkcja zaprzyjaźniona moŝe być funkcją składową innej klasy przyjaźń nie jest dziedziczona
12 Rok akademicki 2008/2009, Wykład nr 3 12/35 Konstruktor class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: osoba(char *i, char *n, int w); void drukuj(void); ; osoba::osoba(char *i,char *n,int w) strcpy(imie,i); strcpy(nazwisko,n); wiek = w; konstruktor słuŝy do nadania wartości początkowych obiektowi (choć nie tylko) wywoływany jest w momencie tworzenia obiektu nazwa konstruktora jest taka sama jak nazwa klasy dla konstruktora nie określamy typu zwracanej wartości (nie moŝe tam wystąpić nawet void) moŝe mieć kilka wariantów czyli róŝną liczbę parametrów (przeładowanie) bez konstruktora: z konstruktorem: osoba os1; os1.zapisz( Jan, Kowalski,30); osoba os1( Jan, Kowalski,30); lub osoba os1=osoba( Jan, Kowalski,30);
13 Rok akademicki 2008/2009, Wykład nr 3 13/35 Przeładowanie nazw funkcji przeładowanie nazw funkcji polega na tym, Ŝe w danym zakresie waŝności jest więcej niŝ jedna funkcja o tej samej nazwie: int oblicz(int x); int oblicz(int x, int y); int oblicz(int x, double y); to, która funkcja zostanie w danym przypadku uaktywniona, zaleŝy od liczby i typu argumentów przy przeładowaniu waŝna jest tylko odmienność listy argumentów, natomiast typ zwracany przez funkcję nie jest brany pod uwagę int oblicz(int x); float oblicz(int x); // błąd!!! w rzeczywistości przy przeładowaniu kompilator zmienia nazwy funkcji int oblicz(int x); int oblicz(int x, int y); int oblicz(int x, double y); oblicz_fi oblicz_fii oblicz_fid
14 Rok akademicki 2008/2009, Wykład nr 3 14/35 Konstruktor Lista inicjalizacyjna konstruktora: class abc int a; int b; int c; abc(int aa, int bb, int cc); ; : a(aa), b(bb) abc::abc(int aa, int bb, int cc): a(aa), b(bb) c = cc; specyfikuje jak naleŝy zainicjować niestatyczne składniki klasy a(aa) - składnik a naleŝy zainicjować wartością wyraŝenia w nawiasie (aa) lista inicjalizacyjna pojawia się tylko przy definicji konstruktora kolejność umieszczania elementów na liście inicjalizacyjnej nie ma znaczenia Konstruktor domniemany: jest to konstruktor, który moŝna wywołać bez Ŝadnego argumentu jeśli w klasie nie ma takiego konstruktora, to kompilator sam go wygeneruje
15 Rok akademicki 2008/2009, Wykład nr 3 15/35 Konstruktor kopiujący konstruktor kopiujący słuŝy do skonstruowania obiektu, który jest kopią innego, juŝ istniejącego obiektu tej klasy: klasa::klasa(klasa &); klasa::klasa(const klasa &); konstruktor kopiujący nie jest obowiązkowy, jeśli go nie zdefiniujemy wtedy kompilator wygeneruje go sobie sam (kopiowanie składnik po składniku ) konstruktor kopiujący moŝemy sami wywołać, np. klasa obiekt1; klasa obiekt2 = obiekt1; konstruktor kopiujący moŝe być wywołany niejawnie: podczas przesyłania argumentów do funkcji - jeśli argumentem funkcji jest obiekt klasy klasa, a przesyłanie odbywa się przez wartość podczas, gdy funkcja jako swój wynik, zwraca (przez wartość) obiekt danej klasy konstruktor kopiujący jest niezbędny, gdy daną składową w klasie jest wskaźnik
16 Rok akademicki 2008/2009, Wykład nr 3 16/35 Destruktor class osoba private: char imie[20]; char nazwisko[30]; int wiek; public: osoba(char *i, char *n, int w); ~osoba(void); void drukuj(void); ; osoba::~osoba()... destruktor wywoływany jest wtedy, gdy obiekt jest likwidowany (destruktor moŝna wywołać jawnie - nie spowoduje on jednak usunięcia obiektu) jego nazwa jest taka sama jak nazwa klasy, ale przed jego nazwą umieszcza się znak ~ zadaniem destruktora jest posprzątanie po obiekcie, np. zwolnienie pamięci dla destruktora nie określamy typu zwracanej wartości
17 Rok akademicki 2008/2009, Wykład nr 3 17/35 Przykład nr 2 - Konstruktor, destruktor (1/2) /* Name: klasa2.cpp Copyright: Politechnika Białostocka, Wydział Elektryczny Author: Jarosław Forenc (jarekf@pb.edu.pl) Date: Description: Przykład zastosowania konstruktora i destruktora */ #include <iostream> #include <string.h> using namespace std; class osoba private: char *imie; char *nazwisko; int wiek; public: osoba(char *i, char *n, int w); ~osoba(); void drukuj(); ;
18 Rok akademicki 2008/2009, Wykład nr 3 18/35 Przykład nr 2 - Konstruktor, destruktor (2/2) osoba::osoba(char *i, char *n, int w) imie = new char[strlen(i)+1]; nazwisko = new char[strlen(n)+1]; strcpy(imie,i); strcpy(nazwisko,n); wiek = w; Jan Kowalski 30 osoba::~osoba() delete [] imie; delete [] nazwisko; void osoba::drukuj() cout << imie << " " << nazwisko; cout << " " << wiek << endl; int main() osoba os1("jan","kowalski",30); os1.drukuj(); return 0;
19 Rok akademicki 2008/2009, Wykład nr 3 19/35 Przykład nr 3 - Konstruktor, destruktor (1/1) #include <iostream> #include <string.h> using namespace std; class test char name[15]; public: test(char *n) strcpy(name,n); cout << "Konstruktor obiektu: " << name << endl; ~test() cout << "Destruktor obiektu: " << name << endl; ; int main() test t1("t1"), t2("t2"); system("pause"); test t3("t3"); system("pause"); system("pause"); return 0;
20 Rok akademicki 2008/2009, Wykład nr 3 20/35 Przeładowanie operatorów w w klasie przeładowanie operatora polega na nadaniu mu specjalnego znaczenia w momencie, gdy stoi on obok obiektu jakiejś klasy przeładowanie operatora dokonuje się definiując własną funkcję o postaci: słowo kluczowe nazwa operatora (np. +, -, itp.) typ_zwracany (argumenty) // ciało funkcji jako co najmniej jeden z argumentów musi wystąpić obiekt klasy zdefiniowanej przez uŝytkownika moŝna przeładować praktycznie wszystkie operatory, nie moŝna wymyślać swoich operatorów, nie moŝna zmieniać priorytetu operatorów automatycznie tworzone są operatory: przypisania ( = ), pobrania adresu ( & ), new, new [], delete i delete [] (tworzenie i usuwanie obiektów) ten sam operator moŝna przeładować wielokrotnie, ale za kaŝdym razem funkcja operatorowa musi mieć inny typ lub kolejność argumentów
21 Rok akademicki 2008/2009, Wykład nr 3 21/35 Przeładowanie operatorów w w klasie operatory mogą być przeładowane jako funkcja globalna lub jako funkcja składowa klasy Operator jako funkcja globalna: macierz operator - (macierz mac1, macierz mac2) macierz wynik(mac1.size); for (int i=0;i<mac1.size;i++) for (int j=0;j<mac1.size;j++) *(wynik.m+i*wynik.size+j)=*(mac1.m+i*mac1.size+j) -*(mac2.m+i*mac2.size+j); return wynik; aby funkcja globalna mogła korzystać z pól prywatnych klasy musi być funkcją zaprzyjaźnioną z klasą: friend macierz operator - (macierz, macierz); umieszczone w definicji klasy
22 Rok akademicki 2008/2009, Wykład nr 3 22/35 Przeładowanie operatorów w w klasie Operator jako funkcja składowa klasy: macierz macierz::operator - (macierz mac2) macierz wynik(size); for (int i=0;i<size;i++) for (int j=0;j<size;j++) *(wynik.m+i*wynik.size+j) = *(m+i*size+j) - *(mac2.m+i*mac2.size+j); return wynik; do funkcji przekazywany jest tylko jeden argument (drugi), pierwszy przekazywany jest domyślnie przez wskaźnik this funkcja operatorowa, która jest składową klasy wymaga, aby obiekt stojący po lewej stronie operatora był obiektem tej klasy operatory >> i << moŝna przeładowywać tylko jako funkcje globalne
23 Rok akademicki 2008/2009, Wykład nr 3 23/35 Przykład nr 4 - Przeładowanie operatorów w w klasie (1/5) /* Description: Klasa wykonująca operacje na macierzach kwadratowych */ /* Błędny wynik przy sumowaniu i róŝnicy elementów o indeksach [0][0]!!! */ /* Gdzie jest błąd??? */ #include <iostream> #include <stdlib.h> #include <time.h> using namespace std; class macierz private: int size; /* rozmiar macierzy */ int *m; /* wskaznik na macierz */ public: macierz(int); /* konstruktor */ macierz(const macierz &); /* konstruktor kopiujacy */ ~macierz(); /* destruktor */ void generuj(int,int); macierz operator + (macierz); friend macierz operator - (macierz, macierz); friend ostream & operator << (ostream &, macierz); ;
24 Rok akademicki 2008/2009, Wykład nr 3 24/35 Przykład nr 4 - Przeładowanie operatorów w w klasie (2/5) macierz::macierz(int n) size = n; m = new int[n*n]; for (int i=0;i<size;i++) for (int j=0;j<size;j++) *(m+i*size+j) = 0; konstruktor klasy macierz (z dynamicznym przydziałem pamięci) macierz::macierz(const macierz &mac) size = mac.size; m = new int[size*size]; for (int i=0;i<size;i++) for (int j=0;j<size;j++) *(m+i*size+j) = *(mac.m+i*size+j); macierz::~macierz() delete [] m; destruktor klasy macierz konstruktor kopiujący, niezbędny do prawidłowego wykonania przypisania A=B, gdy A i B są obiektami klasy macierz
25 Rok akademicki 2008/2009, Wykład nr 3 25/35 Przykład nr 4 - Przeładowanie operatorów w w klasie (3/5) void macierz::generuj(int a, int b) srand(time(null)); for (int i=0;i<size;i++) for (int j=0;j<size;j++) *(m+i*size+j) = rand()%(b-a+1)+a; ostream & operator << (ostream &ekran, macierz mac) for (int i=0;i<mac.size;i++) for (int j=0;j<mac.size;j++) cout << *(mac.m+i*mac.size+j) << " "; cout << endl; return ekran; funkcja generująca elementy macierzy z zakresu <a,b> przeładowanie operatora << poza klasą (inaczej nie moŝna!!!)
26 Rok akademicki 2008/2009, Wykład nr 3 26/35 Przykład nr 4 - Przeładowanie operatorów w w klasie (4/5) macierz macierz::operator + (macierz mac) macierz wynik(size); for (int i=0;i<size;i++) for (int j=0;j<size;j++) *(wynik.m+i*size+j) = *(m+i*size+j) + *(mac.m+i*size+j); return wynik; przeładowanie operatora + w klasie macierz operator - (macierz mac1, macierz mac2) macierz wynik(mac1.size); for (int i=0;i<mac1.size;i++) for (int j=0;j<mac1.size;j++) *(wynik.m+i*wynik.size+j) = *(mac1.m+i*mac1.size+j) - *(mac2.m+i*mac2.size+j); return wynik; przeładowanie operatora - poza klasą
27 Rok akademicki 2008/2009, Wykład nr 3 27/35 Przykład nr 4 - Przeładowanie operatorów w w klasie (5/5) int main() macierz m1(3), m2(3), m3(3); cout << m1 << endl << m2 << endl; m1.generuj(10,20); m2.generuj(-10,10); cout << m1 << endl << m2 << endl; m3 = m1 + m2; cout << m3 << endl; m3 = m1 - m2; cout << m3 << endl; system ("pause"); return 0;
28 Rok akademicki 2008/2009, Wykład nr 3 28/35 Dziedziczenie dziedziczenie jest to technika pozwalającą na definiowanie nowej klasy przy wykorzystaniu klasy juŝ istniejącej dziedziczenie polega na przejmowaniu jednej klasy (klasy bazowej, podstawowej) przez inną klasę (klasę pochodną) przy dziedziczeniu, w skład obiektów klasy pochodnej automatycznie wchodzą pola klasy bazowej, a do obiektów klasy pochodnej moŝemy stosować operacje zdefiniowane przez funkcje składowe klasy bazowej /* klasa podstawowa (bazowa) */ class osoba char *imie; char *nazwisko; int wiek; public: osoba(char *i, char *n, int w); ~osoba() void drukuj(); ; /* klasa pochodna klasy osoba */ class student : public osoba char *wydzial; int semestr; public: student(char *i, char *n, int w, char *wy, int s); ~student() void drukuj(); void promocja(); ;
29 Rok akademicki 2008/2009, Wykład nr 3 29/35 Dziedziczenie class student : public osoba lista pochodzenia nazwa klasy podstawowej sposób dziedziczenia (specyfikator dostępu) w klasie pochodnej moŝna zdefiniować dodatkowe dane składowe i dodatkowe funkcje składowe w klasie pochodnej moŝna zdefiniować dane i funkcje o takich samych nazwach jak w klasie podstawowej (dane i funkcje z klasy podstawowej są wtedy zasłaniane) do zasłoniętych elementów klasy podstawowej moŝna odwoływać się uŝywając operatora zakresu - ::, np. student Nowak( Jan, Nowak,20, WE,2); - deklaracja obiektu klasy student Nowak.drukuj(); - wywołanie funkcji z klasy pochodnej student Nowak.osoba::drukuj(); - wywołanie funkcji z klasy podstawowej osoba
30 Rok akademicki 2008/2009, Wykład nr 3 30/35 Dziedziczenie Sposób dziedziczenia: sposób dziedziczenia klasa podstawowa private protected public private protected private protected protected public private protected public jeśli nie podamy sposobu dziedziczenia, to domyślnie będzie to private podczas dziedziczenia nie są dziedziczone: konstruktor, destruktor i operator przypisania - = moŝliwe jest dziedziczenie wielokrotne, tzn. klasa pochodna moŝe być klasą podstawową dla innej klasy
31 Rok akademicki 2008/2009, Wykład nr 3 31/35 Przykład nr 5 - Dziedziczenie (1/4) #include <iostream> #include <string.h> using namespace std; class osoba private: char *imie; char *nazwisko; int wiek; public: osoba(char*,char *,int); ~osoba(); void drukuj(); ; klasa podstawowa (bazowa) klasa pochodna class student : public osoba private: char *wydzial; int semestr; public: student(char *,char *,int,char *,int); ~student(); void drukuj(); void promocja(); ;
32 Rok akademicki 2008/2009, Wykład nr 3 32/35 Przykład nr 5 - Dziedziczenie (2/4) osoba::osoba(char *i, char *n, int w) imie = new char[strlen(i)+1]; nazwisko = new char[strlen(n)+1]; strcpy(imie,i); strcpy(nazwisko,n); wiek = w; konstruktor klasy osoba destruktor klasy osoba osoba::~osoba() delete [] imie; delete [] nazwisko; void osoba::drukuj() cout << imie << " " << nazwisko; cout << " " << wiek << endl;
33 Rok akademicki 2008/2009, Wykład nr 3 33/35 Przykład nr 5 - Dziedziczenie (3/4) student::student(char *i, char *n, int w, char *wy, int s) : osoba(i,n,w) wydzial = new char[strlen(wy)+1]; strcpy(wydzial,wy); semestr = s; student::~student() delete [] wydzial; void student::drukuj() osoba::drukuj(); cout << "Wydzial: " << wydzial << " Semestr: " << semestr << endl; void student::promocja() semestr++; konstruktor klasy student destruktor klasy student lista inicjalizacyjna konstruktora klasy student zawierająca wywołanie konstruktora klasy podstawowej (osoba)
34 Rok akademicki 2008/2009, Wykład nr 3 34/35 Przykład nr 5 - Dziedziczenie (4/4) int main() student st1("jan","kowalski",20,"we",2); st1.drukuj(); st1.promocja(); st1.drukuj(); st1.osoba::drukuj(); system("pause"); return 0; jako pierwszy zostanie wywołany konstruktor klasy podstawowej (osoba) a po nim konstruktor klasy pochodnej (student) kolejność wywołania destruktorów jest odwrotna w stosunku do konstruktorów jako pierwszy jest wywoływany destruktor klasy student, a po nim destruktor klasy osoba
35 Rok akademicki 2008/2009, Wykład nr 3 35/35 Koniec wykładu nr 3 Dziękuj kuję za uwagę!
Programowanie obiektowe w języku C++ dr inż. Jarosław Forenc
Rok akademicki 2016/2017, Wykład nr 4 2/45 Plan wykładu nr 4 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ cz. 2. Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów.
PROGRAMOWANIE OBIEKTOWE W C++ cz. 2 Dziedziczenie, operacje wej cia-wyj cia, przeładowanie operatorów. Dziedziczenie Dziedziczenie jest to technika pozwalaj c na definiowanie nowej klasy przy wykorzystaniu
Bardziej szczegółowodr inż. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia Rok akademicki 2012/2013 Wykład nr 6 (07.12.2012) dr inż. Jarosław Forenc Rok
Bardziej szczegółowoProgramowanie obiektowe w języku C++ Zarządzanie procesami. dr inż. Jarosław Forenc. Przeładowanie (przeciążanie) operatorów
Rok akademicki 2016/2017, Wykład nr 5 2/40 Plan wykładu nr 5 Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2016/2017
Bardziej szczegółowoPROGRAMOWANIE OBIEKTOWE W C++ - cz 1. Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory.
PROGRAMOWANIE OBIEKTOWE W C++ - cz 1 Definicja klasy, składniki klasy, prawa dost pu, definiowanie funkcji składowych, konstruktory i destruktory. Program komputerowy opisuje w pewien sposób rzeczywisto.
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ół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ół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ół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 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 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ół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ółowo1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?
1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie? a) konstruktor b) referencje c) destruktor d) typy 2. Które z poniższych wyrażeń są poprawne dla klasy o nazwie
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 3.
3.1 Programowanie zorientowane obiektowo... 1 3.2 Unie... 2 3.3 Struktury... 3 3.4 Klasy... 4 3.5 Elementy klasy... 5 3.6 Dostęp do elementów klasy... 7 3.7 Wskaźnik this... 10 3.1 Programowanie zorientowane
Bardziej szczegół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ółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
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 w C++ Wykład 12. Katarzyna Grzelak. 20 maja K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32
Programowanie w C++ Wykład 12 Katarzyna Grzelak 20 maja 2019 K.Grzelak (Wykład 12) Programowanie w C++ 1 / 32 Klasy - powtórzenie Klasy typy definiowane przez użytkownika Klasy zawieraja dane składowe
Bardziej szczegółowoInformatyka 2. Informatyka 2. Wykład nr 1 (04.10.2008) Dane podstawowe. - Wydział Elektryczny. Politechnika Białostocka. Program wykładu (1/2)
Rok akademicki 2008/2009, Wykład nr 1 2/25 Dane podstawowe Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia niestacjonarne I stopnia (zaoczne) Rok akademicki
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++ 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ółowoSpis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: FUNKCJE ZAPRZYJAŹNIONE Z KLASĄ, PRZEŁADOWANIE OPERATORÓW. Informatyka 2
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
Bardziej szczegółowoTechniki programowania INP001002Wl rok akademicki 2017/18 semestr letni. Wykład 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2017/18 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Dziedziczenie Przestrzenie nazw Na podstawie: A.
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ół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ółowopublic: // interfejs private: // implementacja // składowe klasy protected: // póki nie będziemy dziedziczyć, // to pole nas nie interesuje
Zbudujemy klasę Definicję klasy zapiszmy w pliku tstring.h #ifndef TSTRING_H #define TSTRING_H #include // w pliku nagłówkowym NIE // otwieramy przestrzeni std // interfejs private: // implementacja
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ół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 4. Karol Tarnowski A-1 p.
Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni Wykład 4 Karol Tarnowski karol.tarnowski@pwr.edu.pl A-1 p. 411B Plan prezentacji Przeciążanie operatorów Funkcje zaprzyjaźnione Na
Bardziej szczegół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 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ół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ół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ół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ół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ół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ółowoSpis treści PROGRAMOWANIE OBIEKTOWE W JĘZYKU C++: KLASY I OBIEKTY, DANE I FUNKCJE SKŁADOWE, PRAWA DOSTĘPU, KONSTRUKTORY I DESTRUKTORY.
Politechnika Białostocka Wydział Elektryczny Katedra Elektrotechniki Teoretycznej i Metrologii Instrukcja do pracowni specjalistycznej z przedmiotu Informatyka 2 Kod przedmiotu: ES1C300 016 (studia stacjonarne)
Bardziej szczegółowoPodstawy Programowania Obiektowego
Podstawy Programowania Obiektowego Pojęcie konstruktora i destruktora. Spotkanie 04 Dr inż. Dariusz JĘDRZEJCZYK Tematyka wykładu Pojęcie konstruktora Konstruktor domyślny Konstruktor sparametryzowany Konstruktor
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ółowoint tab[5]; tab[1]; ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu macierz [ ] - dwuargumentowy operator indeksowania
Rok akademicki 2013/2014, Pracownia nr 10 2/20 Informatyka 1 Tablica elementów ciągły obszar pamięci, w którym umieszczone są elementy tego samego typu Politechnika Białostocka - Wydział Elektryczny Elektrotechnika,
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ółowoPrzekazywanie argumentów wskaźniki
Przekazywanie argumentów wskaźniki klasyczne wywołanie wyliczenie i zwrotne przekazanie tylko jednej wielkości moŝliwość uŝycia zmiennych globalnych niebezpieczeństwa z tym związane wyjście wywołanie funkcji
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ół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ół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ół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ół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ół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ół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ółowoProgramowanie Obiektowe i C++
Programowanie Obiektowe i C++ Marcin Benke Instytut Informatyki UW 30.10.2006 Marcin Benke (IIUW) Programowanie Obiektowe i C++ 30.10.2006 85 / 112 Zgodność typów Rozważmy klasy class A { //... }; class
Bardziej szczegół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ół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ół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++ 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ół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ół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ół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ół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ół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ółowoInformatyka 2. Wykład nr 2 ( ) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc
Informatyka 2 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr III, studia stacjonarne I stopnia Rok akademicki 2008/2009 Wykład nr 2 (22.10.2008) Rok akademicki 2008/2009, Wykład
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ółowoMechanizm dziedziczenia
Mechanizm dziedziczenia Programowanie obiektowe jako realizacja koncepcji ponownego wykorzystania kodu Jak przebiega proces dziedziczenia? Weryfikacja formalna poprawności dziedziczenia Realizacja dziedziczenia
Bardziej szczegółowoWstęp do Programowania 2
Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 8 Przykład realizowany na wykładzie Klasy StringBad i String. Wstępne pliki załaczone jako źródła.
Bardziej szczegół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ółowotel Konsultacje www
Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: e-mail gos@if.pw.edu.pl tel: tel +48 22 234 58 51 Konsultacje: Piątek: 12.00 13.30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika
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ół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ółowoProgramowanie 2. Język C++. Wykład 9.
9.1 Ukrywanie metod, metody nadpisane... 1 9.2 Metody wirtualne, wirtualny destruktor... 2 9.3 Metody czysto wirtualne... 6 9.4 Klasy abstrakcyjne... 7 9.5 Wielodziedziczenie... 9 9.1 Ukrywanie metod,
Bardziej szczegółowoWyliczanie wyrażenia obiekty tymczasowe
Wyliczanie wyrażenia obiekty tymczasowe Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2013 Bogdan Kreczmer Niniejszy dokument zawiera materiały do wykładu
Bardziej szczegół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ół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ółowoZwracanie obiektu. Funkcja może zwracać obiekty: #include"stdafx.h #include <iostream> using namespace std; class samp { inti; public:
Zwracanie obiektu Funkcja może zwracać obiekty: #include"stdafx.h #include using namespace std; class samp ; inti; samp(char *title); voidset_i(intii) i = ii; intget_i() return i; ~samp(); samp::samp(char
Bardziej szczegółowoKurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016
Wykład 2 17 marca 2016 Dziedziczenie Klasy bazowe i potomne Dziedziczenie jest łatwym sposobem rozwijania oprogramowania. Majac klasę bazowa możemy ja uszczegółowić (dodać nowe pola i metody) nie przepisujac
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ółowoProgramowanie 2. Język C++. Wykład Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne
3.1 Relacje między klasami, klasy zagnieŝdŝone, klasy lokalne... 1 3.2 Zaprzyjaźnione klasy, specyfikator friend... 3 3.3 Zaprzyjaźnione funkcje, metody z klasą... 4 3.4 Relacje dziedziczenia... 6 3.5
Bardziej szczegółowoPROE wykład 3 klasa string, przeciążanie funkcji, operatory. dr inż. Jacek Naruniec
PROE wykład 3 klasa string, przeciążanie funkcji, operatory dr inż. Jacek Naruniec Przypomnienie z ostatnich wykładów Konstruktory/destruktory i kolejność ich wywołania w złożonej klasie. Referencja Obiekty
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ół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ół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 obiektowe w języku
Programowanie obiektowe w języku C++ Stanisław Gepner sgepner@meil.pw.edu.pl Dziedziczenie Wstęp Zacznijmy od przykładu Przykład rolniczy Każde zwierzątko wydaje dźwięk Każde się tak samo porusza Musimy
Bardziej szczegółowoPlik klasy. h deklaracje klas
Plik klasy. h deklaracje klas KLASY DLA PRZYKŁADÓW Z POLIMORFIZMEM enum dim r1 = 1, r2, r3; class figura public: static int const maxliczbafigur; = 100; static int liczbafigur; dim rn; rodzaj przestrzeni
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ółowoKonstruktor kopiujacy
Konstruktor kopiujacy Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Niniejszy dokument zawiera materiały do wykładu na temat programowania obiektowego. Jest on udostępniony
Bardziej szczegół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ółowoKonstruktor destruktor Programowanie obiektowe
Konstruktor destruktor Programowanie obiektowe Klasa w osobnym pliku Pracując w scalonym środowisku programistycznym mamy okno z nazwami wszystkich swoich klas ustawionych alfabetycznie Tworząc klasę w
Bardziej szczegółowoWprowadzenie do programowanie obiektowego w języku C++
Wprowadzenie do programowanie obiektowego w języku C++ Część czwarta 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
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ół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ółowoFUNKCJE WZORCOWE. Wykład 10. Programowanie Obiektowe (język C++) Funkcje wzorcowe wprowadzenie (2) Funkcje wzorcowe wprowadzenie (1)
Programowanie Obiektowe (język C++) Wykład 10. FUNKCJE WZORCOWE Funkcje wzorcowe wprowadzenie (1) Funkcje wzorcowe wprowadzenie (2) int max ( int a, int b ) return a>b? a : b; Aby mieć analogiczną funkcję
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ół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ółowoclass Student Deklaracja klasy Osoba: Deklaracja klasy Student:
Osoba Student Będziemy mieli 2 klasy: Osoba, dla której zapamiętamy dane takie jak: imie, nazwisko i wiek Oraz klasę Student, w której będziemy też dodatkowo pamiętać kierunek studiów. Deklaracja klasy
Bardziej szczegółowoJava - tablice, konstruktory, dziedziczenie i hermetyzacja
Java - tablice, konstruktory, dziedziczenie i hermetyzacja Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU zmienne tablicowe konstruktory klas dziedziczenie hermetyzacja
Bardziej szczegółowoZaawansowane programowanie w języku C++ Programowanie obiektowe
Zaawansowane programowanie w języku C++ Programowanie obiektowe Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka
Bardziej szczegółowoZaliczenie przedmiotu:
INFORMATYKA 2 - Wykład 15h Kod przedmiotu: ES1C300 016, ECTS: 3 pkt. Kierunek: Elektrotechnika, studia stacjonarne I stopnia Semestr: III, rok akademicki: 2016/2017 Zaliczenie przedmiotu: Ogólne warunki
Bardziej szczegółowoProgramowanie obiektowe Wykład 6. Dariusz Wardowski. dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14
Dariusz Wardowski dr Dariusz Wardowski, Katedra Analizy Nieliniowej, WMiI UŁ 1/14 Wirtualne destruktory class A int* a; A(int _a) a = new int(_a);} virtual ~A() delete a;} class B: public A double* b;
Bardziej szczegółowoDariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki int getmax (int a, int b) { return (a > b? a : b); float getmax (float a, float b) { return (a > b? a : b); long getmax (long a, long b)
Bardziej szczegółowoJęzyki Programowania. Prowadząca: dr inż. Hanna Zbroszczyk. tel: Konsultacje: piątek:
Języki Programowania Prowadząca: dr inż. Hanna Zbroszczyk e-mail: gos@if.pw.edu.pl tel: +48 22 234 58 51 Konsultacje: piątek: 12.00 13.30 www: http://www.if.pw.edu.pl/~gos/students/jp Politechnika Warszawska
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ółowo