Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI)
|
|
- Aleksander Szydłowski
- 8 lat temu
- Przeglądów:
Transkrypt
1 Projektowanie i programowanie obiektowe (materiały do wykładu cz. VI) Jacek Cichosz Katedra Systemów i Sieci Komputerowych Politechnika Wrocławska
2 Dziedziczenie 221 Dziedziczenie Dziedziczenie to technika pozwalająca na definiowanie nowej klasy (klasy pochodnej) przy wykorzystaniu klasy już istniejącej klasy podstawowej. W klasie pochodnej możemy: zdefiniować dodatkowe pola składowe (wyposażanie klasy pochodnej w dodatkowe atrybuty), zdefiniować dodatkowe funkcje składowe (wzbogacanie klasy pochodnej w nowe zachowania). przedefiniowywać składowe dane i operacje, które istnieją w klasie podstawowej.
3 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą.
4 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą.
5 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami.
6 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami. 4. samochód osobowy, ciężarówka, autobus to pojazdy.
7 Dziedziczenie 222 Dziedziczenie jako związek między klasami Klasa pochodna efektywny mechanizm definiowania klasy przez dodawanie udogodnień do istniejącej klasy bez ponownego programowania i kompilowania. Klasy pochodne ułatwiają wyrażanie wspólnych cech klas, a tym samym wspólnych własności pojęć z dziedziny rozwiązywanego problemu np: 1. linia, trójkąt, okrąg; wspólna cecha bycie figurą. 2. wykładowca, student, dziekan; wspólna cecha bycie osobą. 3. mucha, motyl, konik polny są wszystkie owadami. 4. samochód osobowy, ciężarówka, autobus to pojazdy. Klasa pochodna może być większa od swojej klasy podstawowej w tym sensie, że zawiera więcej danych i dostarcza więcej funkcji.
8 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba Student ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.
9 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba Student KLASA PODSTAWOWA (PRZODEK) ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.
10 Dziedziczenie 223 Jak reprezentujemy dziedziczenie w języku UML? Osoba KLASA PODSTAWOWA (PRZODEK) ZWIĄZEK DZIEDZICZENIA (UOGÓLNIENIE) Student KLASA POCHODNA (POTOMEK) W języku UML relację dziedziczenia nazywa się uogólnieniem. Za pomocą uogólnienia modelujemy związki hierarchiczne między pojęciami, a tym samym między klasami. Jeśli klasa pochodna ma jednego przodka, to takie dziedziczenie nazywamy pojedynczym.
11 Dziedziczenie 224 Dziedziczenie kilkupokoleniowe Klasa pochodna może być równocześnie klasą podstawową dla innej klasy pochodnej. Osoba Student Pracownik Wykładowca Hierarchia klas ma najczęściej strukturę drzewa, którego korzeń stanowi klasa podstawowa nie mająca przodków.
12 Dziedziczenie 225 Modelowanie związków hierarchicznych Figura Elipsa Wielokąt Okrąg Trójkąt Prostokąt Kwadrat Dzięki dziedziczeniu możemy modelować skomplikowane hierarchiczne związki pojęciowe.
13 Dziedziczenie 226 Wyodrębnianie wspólnych cech pojęć Pojazd Jednoślad Osobowy Ciężarowy Rower Motocykl Autobus Wywrotka Dzięki dziedziczeniu nie musimy powielać tych cech (właściwości) i zachowań, które są wspólne dla wielu pojęć.
14 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja;
15 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja; Pojęcia: Osoba, Student, Wykladowca są reprezentowane jako osobne klasy.
16 Dziedziczenie 227 Podejście bez dziedziczenia class Osoba{ char nazw[32]; class Wykladowca{ char nazw[32]; float pensja; short wydzial; class Student{ char nazw[32]; short grupa; class Pracownik{ char nazw[32]; float pensja; Pojęcia: Osoba, Student, Wykladowca są reprezentowane jako osobne klasy. Zauważamy wspólne atrybuty pojęć: np. nazwisko.
17 Dziedziczenie 228 Podejście z dziedziczeniem class Osoba{ // Klasa podstawowa char nazw[32]; class Student : public Osoba{ // Student jest osobą short grupa; class Pracownik : public Osoba{ // Pracownik jest osobą float pensja; class Wykladowca : public Pracownik{ // Wykładowca jest pracownikiem short wydzial; Dzięki dziedziczeniu reprezentujemy pojęcia bez gubienia ich wspólnych cech.
18 Dziedziczenie 229 Odwołania do składowych klas void f(){ Wykladowca w; Student s; strcpy (w.nazw, "Kowalski"); w.pensja = ; w.wydzial = 4; strcpy( s.nazw, "Nowak" ); s.grupa = 16; } Obiekt klasy podstawowej jest podobiektem obiektu klasy pochodnej. Klasa pochodna dziedziczy wszystkie składniki klasy podstawowej, do których możemy się odwoływać tak, jakby były one zdefiniowane w klasie pochodnej.
19 Dziedziczenie 230 Niejawne konwersje typów Osoba o, * op; Pracownik p, * pp; Student s, * sp; Wykladowca w, *wp; op = &o; // O.K. op = &s; // O.K. student jest osobą op = &w; // O.K. wykładowca jest osobą pp = &w; // O.K. wykładowca jest pracownikiem sp = &o; // Błąd, nie każda osoba jest studentem pp = &o; // Błąd, nie każda osoba jest pracownikiem wp = &o; // Błąd, nie każda osoba jest wykładowcą wp = &p; // Błąd, nie każdy pracownik musi być wykładowcą Obiekt klasy pochodnej można traktować jak obiekt klasy podstawowej, gdy sięga się do niego za pomocą wskaźnika. Stwierdzenie odwrotne nie jest prawdziwe.
20 Dziedziczenie 231 Niejawne konwersje typów void main(){ Osoba o("abacki"); Student s("kowalski", 2); Pracownik p("adamczyk", ); Wykladowca w("nowak", , 16); Osoba & rs = s; // O.K. student jest osobą Osoba & rw = w; // O.K. wykładowca jest osobą Osoba & rp = p; // O.K. pracownik jest osobą Pracownik & rp1 = w; // O.K. wykładowca jest pracownikiem Wykladowca & wr = p; // Źle; nie każdy pracownik jest wykładowcą Wykladowca & wr1 = o; // Źle; nie każda osoba jest wykładowcą } Obiekt klasy pochodnej można traktować jak obiekt klasy podstawowej, gdy sięga się do niego za pomocą referencji. Stwierdzenie odwrotne nie jest prawdziwe.
21 Dziedziczenie 232 Hermetyzacja składowych klas Składowa klasy pochodnej może używać publicznych nazw swojej klasy podstawowej tak samo jak innych składowych, tzn. bez specyfikowania obiektu. Składowa klasy pochodnej nie może sięgać do prywatnych składowych swojej klasy podstawowej. Gdyby było inaczej, to każdy mógłby mieć dostęp do prywatnej składowej klasy przez proste wyprowadzenie klasy pochodnej.
22 Dziedziczenie 233 Dostęp do składowych klas class Osoba{ char nazw[32]; // Dana prywatna (niedostępna w klasach pochodnych) Osoba( const char * n ); class Student : public Osoba{ short grupa; // Dana prywatna Student( const char * n, short s ); void drukuj() const; void Student :: drukuj() const{ cout << "nazwisko: " << nazw << endl; // Źle; brak dostępu do: nazw cout << "grupa: " << grupa; }
23 Dziedziczenie 234 Składowe, których się nie dziedziczy Konstruktor klasy podstawowej nie staje sie automatycznie konstruktorem klasy pochodnej gdyż: nic nie wie o dodatkowych atrybutach zdefiniowanych w klasie pochodnej, Użycie konstruktora z klasy podstawowej spowodowałoby zainicjowanie tylko składników klasy podstawowej, a dane zdefiniowane w klasie pochodnej zostałyby zignorowane. W konstruktorze klasy pochodnej do inicjacji części odziedziczonej można wywołać konstruktor klasy podstawowej. Operator przypisania (operator =) z powodów jak wyżej. Destruktor jest ściśle związany z konstruktorem i dlatego musi być zdefiniowany w klasie pochodnej.
24 Dziedziczenie 235 Konstruktory w obrębie klas pochodnych Obiekt klasy podstawowej jest w pewnym sensie podobiektem klasy pochodnej. Konstruowanie obiektu klasy pochodnej składa się ze skonstruowania obiektu klasy podstawowej i dobudowania tego, co jest właściwe klasie pochodnej. class Osoba{ char nazw[32]; Osoba( const char * n ) { strcpy( nazw, n );} Jeśli konstruktor klasy podstawowej potrzebuje argumentów, to musimy je dostarczyć. class Pracownik : public Osoba{ float pensja; Pracownik( const char * n, float p ) : Osoba( n ), pensja( p ){}
25 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania: class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }
26 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }
27 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej, składowe klasy pochodnej class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }
28 Dziedziczenie 236 Kolejność konstruowania w klasach pochodnych Argumenty konstruktora klasy podstawowej podajemy w definicji konstruktora klasy pochodnej. Pod tym względem klasa podstawowa zachowuje się dokładnie tak, jak składowa klasy pochodnej. Kolejność konstruowania:najpierw obiekt klasy podstawowej, składowe klasy pochodnej, reszta, czyli instrukcje w treści konstruktora klasy pochodnej. class Student : public Osoba{ short grupa; Student( const char * n, short g ) : Osoba( n ), grupa( g ){ }
29 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie:
30 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora).
31 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji.
32 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji. Klasy podstawowe w kolejności odwrotnej do deklaracji.
33 Dziedziczenie 237 Kolejność niszczenia w klasach pochodnych Niszczenie przebiega w odwrotnej kolejności niż konstruowanie: Klasa pochodna (instrukcje w ciele destruktora). Składowe klasy pochodnej w kolejności odwrotnej do deklaracji. Klasy podstawowe w kolejności odwrotnej do deklaracji. Dla klas bez jawnie zdefiniowanego destruktora jest podobnie: class Wykladowca : public Pracownik{ short wydzial; Wykladowca( const char * n, float p, short w ) : Pracownik( n, p ), wydzial( w ){ } Najpierw niszczona jest klasa Wykladowca, następnie klasa Pracownik, a na końcu Osoba.
34 Dziedziczenie 238 Zasłanianie class A{ int x; A() : x( 1 ) {} int y; void f(); void A :: f(){ cout << "x = " << x << ", y = " << y << endl; } class B : public A{ int y; void f(); void B :: f(){ cout << "y = " << y << endl; } void main(){ B ob; ob.y = 3; // Odwolanie do B :: y ob.a :: y = 45; // Odwolanie do A :: y ob.f(); // Odwołanie do B :: f() ob.a :: f(); // Odwołanie do A :: f()
35 Dziedziczenie 239 Zasłanianie Jeśli w klasie podstawowej i klasie pochodnej są składniki o tej samej nazwie, wówczas w zakresie klasy pochodnej składnik z tej klasy zasłania składnik z klasy podstawowej. W klasie pochodnej mogą wystąpić funkcje o takich samych nazwach jak w klasie podstawowej.
36 Dziedziczenie 240 Dziedziczenie a zagnieżdżanie bloków analogia { // Zakres klasy podstawowej int x; // Składniki dziedziczone int y; { // Zakres klasy pochodnej int x; // Składniki klasy pochodnej int y; } } Dziedziczenie jest w pewnym sensie analogiczne do zagnieżdżania bloków. Wewnętrzny blok odpowiada klasie pochodnej, a zewnętrzny klasie podstawowej.
37 Dziedziczenie 241 Przedefiniowywanie zachowania Nadawanie tych samych nazw funkcjom składowym klas podstawowych i pochodnych może służyć do przedefiniowania zachowania w klasach pochodnych. Jest to realizowane przez zasłonięcie nazwy operacji składowej klasy podstawowej przez nazwę operacji w klasie pochodnej. class Osoba{ char nazw[32]; Osoba( const char * ); // Drukuj info o osobie void drukuj() const; class Pracownik : public Osoba{ float pensja; Pracownik( const char *, float ); // Drukuj info o pracowniku void drukuj() const;
38 Dziedziczenie 242 Przedefiniowywanie zachowania // Drukuj info o osobie void Osoba :: drukuj() const{ cout << "Nazwisko: " << nazw << endl; } // W klasie pochodnej możemy wywołać drukuj() // z klasy podstawowej void Pracownik :: drukuj() const{ Osoba :: drukuj(); // Drukuj nazwisko osoby cout << "Zarobki: " << pensja << endl; } void Wykladowca :: drukuj(){ Pracownik :: drukuj(); cout << "Wydzial: " << wydzial << endl; }
39 Dziedziczenie 243 Diagram klas z przesłoniętą funkcją drukuj() Osoba -nazw: char[32] + drukuj() Wspólne pole danych w klasie podstawowej Student -grupa: + drukuj() short Przedefiniowane operacje w klasach potomnych Pracownik -pensja: + drukuj() Wykladowca -wydzial: + drukuj() float short Pola właściwe dla klas potomnych
40 Dziedziczenie 244 Problemy z przedefiniowywaniem zachowania Jeśli mamy wskaźnik do klasy podstawowej np. Osoba, to do jakiego typu należy wskazywany obiekt? Student s("nowak", 16); Wykladowca w("kowalski", ); Pracownik p("kowalczyk", ); Osoba *op; op = &s; op->drukuj(); // Wywoła się: Osoba :: drukuj(); op = &w; op->drukuj(); // Wywoła się: Osoba :: drukuj(); op = &p; op->drukuj(); // Wywoła się: Osoba :: drukuj();
41 Dziedziczenie 245 Rozwiązanie za pomocą pola typu class Osoba{ enum TypOsoby{ O, S, P, W Osoba( const char * s ){ strcpy( nazw, s ); typ_os = O; } void drukuj() const; int typ() const{ return typ_os; } protected: TypOsoby typ_os; private: char nazw[32];
42 Dziedziczenie 246 Konstruktory ustawiają pola typu class Student : public Osoba{ short grupa; Student( const char * s, short g ) : Osoba( s ), grupa( g ){ typ_os = S; } void drukuj() const; class Pracownik : public Osoba{ float pensja; Pracownik( const char * s, float p ) : Osoba( s ), pensja( p ) { typ_os = P; } }
43 Dziedziczenie 247 Funkcja drukująca testuje pole typu // Drukowanie informacji o osobie void drukuj_osobe( const Osoba * op ){ switch( op->typ() ){ case Osoba :: S: ((Student *)op)->drukuj(); // Wywoła: Student :: drukuj() break; case Osoba :: P: ((Pracownik *)op)->drukuj(); // Wywoła: Pracownik :: drukuj() break; case Osoba :: W: ((Wykladowca *)op)->drukuj(); // Wywoła: Wykladowca :: drukuj() break; default: op->drukuj(); // Wywoła: Osoba :: drukuj() break; } }
44 Dziedziczenie 248 Użycie funkcji drukującej w programie void main(){ Pracownik p("kowalski", ); Student s("nowak", 16 ); Wykladowca w("pawlak", , 4 ); Osoba o("jankowski"); drukuj_osobe( &p ); drukuj_osobe( &s ); drukuj_osobe( &w ); drukuj_osobe( &o ); // Drukowanie tablicy osób Osoba * tab[] = {&p, &s, &w, &o for( int i = 0; i < sizeof( tab )/ sizeof(tab[0]) ; i++ ) drukuj_osobe( tab[i] ); }
45 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu.
46 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę.
47 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów:
48 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu,
49 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch.
50 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch. Każde dodanie nowego typu np. Profesor : public Wykladowca powoduje konieczność zmiany wszystkich funkcji, które testują pole typu.
51 Dziedziczenie 249 Wady rozwiązania z polem typu Każda funkcja korzystająca z pola typu musi znać reprezentację i szczegóły implementacji każdej klasy, która pochodzi od klasy zawierającej pole typu. Rozwiązanie z polem sprawdza się w małych programach pisanych przez jedną osobę. W dużych programach prowadzi ono do dwóch rodzajów błędów: 1. zapomnienie o sprawdzeniu pola typu, 2. nieumieszczenie wszystkich możliwych przypadków w instrukcji switch. Każde dodanie nowego typu np. Profesor : public Wykladowca powoduje konieczność zmiany wszystkich funkcji, które testują pole typu. Wniosek: Technika stosująca pole typu jest podatna na błędy.
52 Dziedziczenie 250 Funkcje wirtualne class Osoba{ char nazw[32]; Osoba( const char * ); virtual void drukuj() const; Osoba :: drukuj() const{ cout << "Nazwisko: " << nazw << endl; } class Student : public Osoba{ short grupa; Student( const char*,short ); virtual void drukuj() const; Student :: drukuj() const{ Osoba :: drukuj(); cout << "Grupa: " << grupa << endl; }
53 Dziedziczenie 251 Funkcje wirtualne class Pracownik: public Osoba{ float pensja; Pracownik( const char*, float ); virtual void drukuj() const; class Wykladowca: public Pracownik{ short wydzial; Wykladowca( const char*, float, short); // Uwaga: ta funkcja też może być wirtualna void drukuj() const;
54 Dziedziczenie 252 Zastosowanie funkcji wirtualnych // Każda osoba zostanie wydrukowana // zgodnie ze swoim typem void drukuj_tablice( const Osoba *p, int rozmiar ){ for( int i = 0; i < rozmiar ; i++ ) p++->drukuj(); // Wywołanie funkcji wirtualnej } void main(){ Student s( "Nowak", 13 ); Wykladowca w1( "Pawlak", , 4 ), w2( "Kowalski", , 6 ); Osoba *tab[] = {&s, &w1, &w2 drukuj_tablice( tab, sizeof(tab)/sizeof( tab[0] )); }
55 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej.
56 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora.
57 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych.
58 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna.
59 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna. Dzięki temu, można używać funkcji wirtualnej nawet wtedy, kiedy z klasy, w której występuje nie wyprowadzi się żadnej klasy pochodnej.
60 Dziedziczenie 253 Właściwości funkcji wirtualnych Funkcje wirtualne pozwalają na przedefiniowanie w każdej klasie pochodnej funkcji zdeklarowanej w klasie podstawowej. Słowo kluczowe virtual wskazuje, że funkcja drukuj() może mieć różne wersje dla różnych klas pochodnych i że znalezienie właściwej funkcji dla każdego wywołania drukuj() jest zadaniem kompilatora. Typ funkcji wirtualnej jest zdeklarowany w klasie podstawowej i nie może ulec zmianie w klasach pochodnych. Funkcja wirtualna musi być zdefiniowana dla klasy, w której po raz pierwszy została zdeklarowana chyba, że została zdeklarowana jako czysta funkcja wirtualna. Dzięki temu, można używać funkcji wirtualnej nawet wtedy, kiedy z klasy, w której występuje nie wyprowadzi się żadnej klasy pochodnej. Klasa pochodna, która nie potrzebuje specjalnej wersji funkcji wirtualnej, nie musi jej dostarczać.
61 Dziedziczenie 254 Klasy pochodne i pamięć wolna void main(){ Osoba *tab[] = { new Student( "Nowak", 13 ), new Wykladowca( "Pawlak", , 4 ), new Pracownik( "Kowalski", ) } drukuj_tablice( tab, sizeof( tab ) / sizeof( tab[0] )); // Zwalnianie pamięci wskazywanych przez elementy tablicy for( i = 0 ; i < sizeof( tab ) / sizeof( tab[0] ) ; i++ ) delete tab[i]; } Kłopot: operator delete nie dostanie właściwych rozmiarów obiektów klas potomnych klasy Osoba, których pamięć zwalniamy.
62 Dziedziczenie 255 Destruktor wirtualny class Osoba{ char nazw[32]; Osoba( const char * ); virtual void drukuj() const; virtual ~Osoba(); Osoba :: ~Osoba() {} class Student : public Osoba{ short grupa; Student( const char*,short ); virtual void drukuj() const; // Ten destruktor może też być wirtualny ~Student(); Student :: ~Student() {}
63 Dziedziczenie 256 Destruktor wirtualny class Pracownik: public Osoba{ float pensja; Pracownik( const char*, float ); virtual void drukuj() const; virtual ~Pracownik() {} class Wykladowca: public Pracownik{ short wydzial; Wykladowca( const char*, float, short); // Uwaga: ta funkcja też może być wirtualna void drukuj() const; // Ten destruktor też może być wirtualny ~Wykladowca() {}
64 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu.
65 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np.
66 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np. Osoba * ptr = new Student( "Kowalski", 3 ); //... delete ptr; // Zadziała niewłaściwie, jeśli klasa: Osoba // nie ma destruktora wirtualnego
67 Dziedziczenie 257 Destruktor wirtualny podsumowanie Kompilator musi dostarczyć operatorowi delete właściwy rozmiar wskazywanego obiektu. Jeśli typ na który wskazuje wskaźnik wyspecyfikowany w operacji delete jest typem klasy podstawowej, a rzeczywistym typem wskazywanym jest klasa pochodna, to rozmiar obiektu nie zostanie właściwie określony przez kompilator; np. Osoba * ptr = new Student( "Kowalski", 3 ); //... delete ptr; // Zadziała niewłaściwie, jeśli klasa: Osoba // nie ma destruktora wirtualnego Nawet pusty destruktor (tzn. nie zawierający żadnych instrukcji) spełni swoje zadanie.
68 Dziedziczenie 258 Destruktor wirtualny zasada użycia Jeśli manipuluje się obiektami pochodnymi za pomocą wskaźnika do klasy pochodnej (przydział i zwalnianie pamięci za pomocą operatorów new i delete), to trzeba dostarczyć destruktor wirtualny w klasach, które zachowują się jak klasy podstawowe (przeznaczone do dalszego wyprowadzania klas pochodnych).
69 Dziedziczenie 258 Destruktor wirtualny zasada użycia Jeśli manipuluje się obiektami pochodnymi za pomocą wskaźnika do klasy pochodnej (przydział i zwalnianie pamięci za pomocą operatorów new i delete), to trzeba dostarczyć destruktor wirtualny w klasach, które zachowują się jak klasy podstawowe (przeznaczone do dalszego wyprowadzania klas pochodnych). Jeśli klasa zawiera choć jedną funkcję wirtualną, to prawie zawsze zachodzi konieczność zdefiniowania dla niej destruktora wirtualnego.
70 Dziedziczenie 259 Nieuporządkowana tablica rekordów class RecTbl{ RecTbl( int r ); RecTbl( const RecTbl & ); RecTbl & operator = ( const RecTbl & ); virtual ~RecTbl(); virtual int dodaj( const char * nzw, Tele tel ); virtual OsobaInfo * szukaj( const char * nzw ); virtual int usun( const char * nzw ); int ile_elementow(); int max_rozmiar(); int jest_pusta(); protected: int rozmiar; int licznik; OsobaInfo * tab;
71 Dziedziczenie 260 Uporządkowana tablica rekordów class SortedTbl : public RecTbl{ SortedTbl( int r ) : RecTbl( r ){ SortedTbl( const RecTbl & src ) : RecTbl( src ) { SortedTbl & operator = ( const SortedTbl & ); ~SortedTbl() {} // Dodaj rekord z zachowaniem porządku int dodaj( const char * nzw, Tele tel ); // Wyszukiwanie binarne OsobaInfo * szukaj( const char * nzw ); // Usuwanie z zachowaniem uporządkowania int usun( const char * nzw );
72 Dziedziczenie 261 Usuwanie rekordu z tablicy nieuporządkowanej // // Na miejsce usuwanego elementu wstawiamy ostatni // Ta operacja nie zachowuje porządku elementów // int RecTbl :: usun( const char * nzw ){ // Wyszukiwanie liniowe RecTbl :: szukaj() OsobaInfo * op = szukaj( nzw ); if( op!= NULL ){ *op = tab[--licznik]; return 1; } else return 0; }
73 Dziedziczenie 262 Usuwanie rekordu z tablicy uporządkowanej int SortedTbl :: usun( const char * nzw ){ // Wyszukiwanie binarne SortedTbl :: szukaj() OsobaInfo * op = szukaj( nzw ); if( op!= NULL ){ int i; for( i = op - tab; i < (licznik - 1) ; i++ ) tab[i] = tab[i+1]; --licznik; return 1; } else return 0; }
74 Dziedziczenie 263 Wiązanie dynamiczne void szukaj_i_drukuj( RecTbl * p, const char * nzw ){ OsobaInfo * op; if( ( op = p->szukaj( nzw ) )!= NULL ) op->drukuj(); else cout << "Nie znaleziono rekordu\n" << endl; } void main(){ RecTbl ltab( 100 ); SortedTbl stab( 500 ); //... Wstaw rekordy do tablic szukaj_i_drukuj( <ab, "Kowalski" ); szukaj_i_drukuj( &stab, "Pawlak" ); }
75 Dziedziczenie 264 Indeks c J. Cichosz Start Projektowanie i programowanie obiektowe
Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.
Programowanie II prowadzący: Adam Dudek Lista nr 8 Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące. Jest to najważniejsza cecha świadcząca o sile programowania
Bardziej szczegółowo0.1 Hierarchia klas. 0.1.1 Diagram. 0.1.2 Krótkie wyjaśnienie
0.1 Hierarchia klas 0.1.1 Diagram 0.1.2 Krótkie wyjaśnienie Po pierwsze to jest tylko przykładowe rozwiązanie. Zarówno na wtorkowych i czwartkowych ćwiczeniach odbiegaliśmy od niego, ale nie wiele. Na
Bardziej szczegółowoPROE wykład 7 kontenery tablicowe, listy. dr inż. Jacek Naruniec
PROE wykład 7 kontenery tablicowe, listy dr inż. Jacek Naruniec Prosty kontener oparty na tablicach Funkcja dodawanie pojedynczego słonia do kontenera: 1 2 3 4 5 6 7 11 12 13 14 15 16 17 21 22 23 24 25
Bardziej szczegółowoKompozycja i dziedziczenie klas
Programowanie obiektowe Kompozycja i dziedziczenie klas Paweł Rogaliński Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej pawel.rogalinski pwr.wroc.pl Kompozycja i dziedziczenie klas
Bardziej szczegółowoWartości domyślne, szablony funkcji i 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 2012 Bogdan Kreczmer Niniejszy dokument
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ółowoBazy danych. Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15
Bazy danych Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl www.uj.edu.pl/web/zpgk/materialy 9/15 Przechowywanie danych Wykorzystanie systemu plików, dostępu do plików za pośrednictwem systemu operacyjnego
Bardziej szczegółowoProgramowanie 2. Język C++. Wykład 2.
2.1 Definicja, deklaracja, wywołanie funkcji.... 1 2.2 Funkcje inline... 4 2.3 Przekazanie do argumentu funkcji wartości, adresu zmiennej.... 5 2.4 Wskaźniki do funkcji... 8 2.5 Przeładowanie funkcji...
Bardziej szczegółowo3-4. 5-7. 8-10. 11-12 15-18. 19-22
1. 2. 3-4. 5-7. 8-10. 11-12 13-14. 15-18. 19-22 23-28. 29-30. Programowanie strukturalne i obiektowe Typ wyliczeniowy, lista wyliczeniowa. Rzutowanie w C++. Wskaźniki i referencje. Działania na wskaźnikach.
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ółowoPrzypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych?
Przypomnienie najważniejszych pojęć z baz danych. Co to jest baza danych? 1 Podstawowe pojęcia: 2 3 4 5 Dana (ang.data) najmniejsza, elementarna jednostka informacji o obiekcie będąca przedmiotem przetwarzania
Bardziej szczegółowoPolitechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, 00-662 Warszawa
Zamawiający: Wydział Matematyki i Nauk Informacyjnych Politechniki Warszawskiej 00-662 Warszawa, ul. Koszykowa 75 Przedmiot zamówienia: Produkcja Interaktywnej gry matematycznej Nr postępowania: WMiNI-39/44/AM/13
Bardziej szczegółowoWykład 4 Wybrane zagadnienia programowania w C++
Wykład 4 Wybrane zagadnienia programowania w C++ Przykład programu obiektowego Dziedziczenie polimorfizm i metody wirtualne Wzorce (szablony) funkcji Wzorce klas 2016-01-03 Bazy danych-1 W4 1 Dziedziczenie
Bardziej szczegółowoInstalacja. Zawartość. Wyszukiwarka. Instalacja... 1. Konfiguracja... 2. Uruchomienie i praca z raportem... 4. Metody wyszukiwania...
Zawartość Instalacja... 1 Konfiguracja... 2 Uruchomienie i praca z raportem... 4 Metody wyszukiwania... 6 Prezentacja wyników... 7 Wycenianie... 9 Wstęp Narzędzie ściśle współpracujące z raportem: Moduł
Bardziej szczegółowoJĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO
JĘZYK UML JAKO NARZĘDZIE MODELOWANIA PROCESU PROJEKTOWO-KONSTRUKCYJNEGO Andrzej BAIER, Tomasz R. LUBCZYŃSKI Streszczenie: W ostatnich latach można zaobserwować dynamiczny rozwój analizy zorientowanej obiektowo.
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ółowoKATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH
KATEDRA INFORMATYKI STOSOWANEJ PŁ ANALIZA I PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH Przygotował: mgr inż. Radosław Adamus 1 1 Na podstawie: Subieta K., Język UML, V Konferencja PLOUG, Zakopane, 1999. Wprowadzenie
Bardziej szczegółowoart. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny (Dz. U. Nr 16, poz. 93 ze zm.),
Istota umów wzajemnych Podstawa prawna: Księga trzecia. Zobowiązania. Dział III Wykonanie i skutki niewykonania zobowiązań z umów wzajemnych. art. 488 i n. ustawy z dnia 23 kwietnia 1964 r. Kodeks cywilny
Bardziej szczegółowoPrzykład implementacji przeciażeń operatorów problem kolizji
Przykład implementacji przeciażeń operatorów problem kolizji Bogdan Kreczmer ZPCiR IIAiR PWr pokój 307 budynek C3 bogdan.kreczmer@pwr.wroc.pl Copyright c 2005 2008 Bogdan Kreczmer Niniejszy dokument zawiera
Bardziej szczegółowoPRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc
PRAWA ZACHOWANIA Podstawowe terminy Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc a) si wewn trznych - si dzia aj cych na dane cia o ze strony innych
Bardziej szczegółowoArchitektura komputerów
Architektura komputerów Tydzień 6 RSC i CSC Znaczenie terminów CSC Complete nstruction Set Computer komputer o pełnej liście rozkazów. RSC Reduced nstruction Set Computer komputer o zredukowanej liście
Bardziej szczegółowoUmowa o pracę zawarta na czas nieokreślony
Umowa o pracę zawarta na czas nieokreślony Uwagi ogólne Definicja umowy Umowa o pracę stanowi dokument stwierdzający zatrudnienie w ramach stosunku pracy. Według ustawowej definicji jest to zgodne oświadczenie
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ół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ółowoWYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH
WYMAGANIA EDUKACYJNE I KRYTERIA OCENIANIA Z PRZEDMIOTU PROGRAMOWANIE APLIKACJI INTERNETOWYCH Klasa: 3TIR - Technik informatyk Program: 351203 Wymiar: 4 h tygodniowo Podręcznik: Kwalifikacja E.14 Programowanie
Bardziej szczegółowoCharakterystyka systemów plików
Charakterystyka systemów plików Systemy plików są rozwijane wraz z systemami operacyjnymi. Windows wspiera systemy FAT oraz system NTFS. Różnią się one sposobem przechowywania informacji o plikach, ale
Bardziej szczegółowoGENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH
GENERALNY INSPEKTOR OCHRONY DANYCH OSOBOWYCH dr Wojciech R. Wiewiórowski DOLiS - 035 1997/13/KR Warszawa, dnia 8 sierpnia 2013 r. Pan Sławomir Nowak Minister Transportu, Budownictwa i Gospodarki Morskiej
Bardziej szczegółowoII. WNIOSKI I UZASADNIENIA: 1. Proponujemy wprowadzić w Rekomendacji nr 6 także rozwiązania dotyczące sytuacji, w których:
Warszawa, dnia 25 stycznia 2013 r. Szanowny Pan Wojciech Kwaśniak Zastępca Przewodniczącego Komisji Nadzoru Finansowego Pl. Powstańców Warszawy 1 00-950 Warszawa Wasz znak: DRB/DRB_I/078/247/11/12/MM W
Bardziej szczegółowoKonferencja Sądu Arbitrażowego przy SIDiR WARUNKI KONTRAKTOWE FIDIC KLAUZULA 13 JAKO ODMIENNY SPOSÓB WYKONANIA ROBÓT A NIE ZMIANA UMOWY
Konferencja Sądu Arbitrażowego przy SIDiR Zbigniew J. Boczek WARUNKI KONTRAKTOWE FIDIC KLAUZULA 13 JAKO ODMIENNY SPOSÓB WYKONANIA ROBÓT A NIE ZMIANA UMOWY 13 Variations and Adjustments!! 13 Zmiany i korekty
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ółowoProgramowanie obiektowe w C++ Wykład 11
Programowanie obiektowe w C++ Wykład 11 dr Lidia Stępień Akademia im. Jana Długosza w Częstochowie L. Stępień (AJD) Programowanie obiektowe w C++ 1 / 34 STL - rys historyczny utworzona została w 1994 r.
Bardziej szczegółowoASD - ćwiczenia III. Dowodzenie poprawności programów iteracyjnych. Nieformalnie o poprawności programów:
ASD - ćwiczenia III Dowodzenie poprawności programów iteracyjnych Nieformalnie o poprawności programów: poprawność częściowa jeżeli program zakończy działanie dla danych wejściowych spełniających założony
Bardziej szczegółowoUchwała nr O- 14 - III- 2012 Krajowej Rady Izby Architektów RP z dnia 20 marca 2012 r. w sprawie wprowadzenia wzoru kontraktu menedżerskiego
Uchwała nr O- 14 - III- 2012 Krajowej Rady Izby Architektów RP z dnia 20 marca 2012 r. w sprawie wprowadzenia wzoru kontraktu menedżerskiego Na podstawie art. 33 pkt 14 ustawy z dnia 15 grudnia 2000 r.
Bardziej szczegółowoJava język programowania zorientowany obiektowo
Java język programowania zorientowany obiektowo Artur Piętas Poniższy artykuł przedstawia ideę programowania zorientowanego obiektowo w kontekście jednego z najpopularniejszych języków programowania, jakim
Bardziej szczegółowoUmowa w sprawie przyznania grantu Marie Curie 7PR Wykaz klauzul specjalnych
WYKAZ WSZYSTKICH KLAUZUL SPECJALNYCH MAJĄCYCH ZASTOSOWANIE DO WZORU UMOWY W SPRAWIE PRZYZNANIA GRANTU MARIE CURIE W RAMACH REALIZACJI SIÓDMEGO PROGRAMU RAMOWEGO WSPÓLNOTY EUROPEJSKIEJ (2007-2013) SPIS
Bardziej szczegółowoJak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach.
Jak usprawnić procesy controllingowe w Firmie? Jak nadać im szerszy kontekst? Nowe zastosowania naszych rozwiązań na przykładach. 1 PROJEKTY KOSZTOWE 2 PROJEKTY PRZYCHODOWE 3 PODZIAŁ PROJEKTÓW ZE WZGLĘDU
Bardziej szczegółowoWniosek o ustalenie warunków zabudowy
Wniosek o ustalenie warunków zabudowy Informacje ogólne Kiedy potrzebna jest decyzja Osoba, która składa wniosek o pozwolenie na budowę, nie musi mieć decyzji o warunkach zabudowy terenu, pod warunkiem
Bardziej szczegółowoCo do zasady, obliczenie wykazywanej
Korekta deklaracji podatkowej: można uniknąć sankcji i odzyskać ulgi Piotr Podolski Do 30 kwietnia podatnicy podatku dochodowego od osób fizycznych byli zobowiązani złożyć zeznanie określające wysokość
Bardziej szczegółowoProjekt MES. Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe
Projekt MES Wykonali: Lidia Orkowska Mateusz Wróbel Adam Wysocki WBMIZ, MIBM, IMe 1. Ugięcie wieszaka pod wpływem przyłożonego obciążenia 1.1. Wstęp Analizie poddane zostało ugięcie wieszaka na ubrania
Bardziej szczegółowoZadania. SiOD Cwiczenie 1 ;
1. Niech A będzie zbiorem liczb naturalnych podzielnych przez 6 B zbiorem liczb naturalnych podzielnych przez 2 C będzie zbiorem liczb naturalnych podzielnych przez 5 Wyznaczyć zbiory A B, A C, C B, A
Bardziej szczegółowoIntegracja systemów, integracja procesów
Nowe rozwiązania informatyczne w zmieniającej się rzeczywistości akademickiej Integracja systemów, integracja procesów... Janina Mincer-Daszkiewicz Uniwersytet Warszawski, MUCI jmd@mimuw.edu.pl Warszawa,
Bardziej szczegółowoWarunki Oferty PrOmOcyjnej usługi z ulgą
Warunki Oferty PrOmOcyjnej usługi z ulgą 1. 1. Opis Oferty 1.1. Oferta Usługi z ulgą (dalej Oferta ), dostępna będzie w okresie od 16.12.2015 r. do odwołania, jednak nie dłużej niż do dnia 31.03.2016 r.
Bardziej szczegółowoFunkcje składowe (metody)
Funkcje składowe (metody) class Punkt int x, y; void Rysuj() /* rysowanie */ ; class Punkt int x, y; void Rysuj(); ; void Punkt::Rysuj() /* rysowanie */ definicja funkcji wewnątrz ciała klasy funkcja otwarta
Bardziej szczegółowoRegulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju
Regulamin Zarządu Pogórzańskiego Stowarzyszenia Rozwoju Art.1. 1. Zarząd Pogórzańskiego Stowarzyszenia Rozwoju, zwanego dalej Stowarzyszeniem, składa się z Prezesa, dwóch Wiceprezesów, Skarbnika, Sekretarza
Bardziej szczegółowoWYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof Staryk
Sygn. akt II UK 27/15 WYROK W IMIENIU RZECZYPOSPOLITEJ POLSKIEJ Sąd Najwyższy w składzie: Dnia 3 lutego 2016 r. SSN Bogusław Cudowski (przewodniczący) SSN Jolanta Frańczak (sprawozdawca) SSN Krzysztof
Bardziej szczegółowoNa podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu.
Na podstawie art.4 ust.1 i art.20 lit. l) Statutu Walne Zebranie Stowarzyszenia uchwala niniejszy Regulamin Zarządu Regulamin Zarządu Stowarzyszenia Przyjazna Dolina Raby Art.1. 1. Zarząd Stowarzyszenia
Bardziej szczegółowoMikroekonomia Wykład 9
Mikroekonomia Wykład 9 Efekty zewnętrzne Przez długie lata ekonomiści mieli problemy z jednoznacznym zdefiniowaniem efektów zewnętrznych, które oddziaływały na inne podmioty gospodarcze przez powodowanie
Bardziej szczegółowoZebranie Mieszkańców Budynków, zwane dalej Zebraniem, działa na podstawie: a / statutu Spółdzielni Mieszkaniowej WROCŁAWSKI DOM we Wrocławiu,
R E G U L A M I N Zebrania Mieszkańców oraz kompetencji i uprawnień Samorządu Mieszkańców Budynków Spółdzielni Mieszkaniowej WROCŁAWSKI DOM we Wrocławiu. ROZDZIAŁ I. Postanowienia ogólne. Zebranie Mieszkańców
Bardziej szczegółowoWarszawska Giełda Towarowa S.A.
KONTRAKT FUTURES Poprzez kontrakt futures rozumiemy umowę zawartą pomiędzy dwoma stronami transakcji. Jedna z nich zobowiązuje się do kupna, a przeciwna do sprzedaży, w ściśle określonym terminie w przyszłości
Bardziej szczegółowoWszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną, fotograficzną,
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ółowoUMOWA POWIERZENIA PRZETWARZANIA DANYCH OSOBOWYCH (zwana dalej Umową )
Nr sprawy: PZP1/2016 Załącznik nr 6 do Umowy w sprawie udzielenia zamówienia publicznego na o świadczenie kompleksowej usługi na wydruk, konfekcjonowanie oraz wysyłkę imiennych zaproszeń na badania mammograficzne
Bardziej szczegółowoUMOWA PORĘCZENIA NR [***]
UMOWA PORĘCZENIA NR [***] zawarta w [***], w dniu [***] r., pomiędzy: _ z siedzibą w, ul., ( - ), wpisaną do rejestru przedsiębiorców Krajowego Rejestru Sądowego prowadzonego przez Sąd Rejonowy, Wydział
Bardziej szczegółowo'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+
'()(*+,-./01(23/*4*567/8/23/*98:)2(!."/+)012+3$%-4#"4"$5012#-4#"4-6017%*,4.!"#$!"#%&"!!!"#$%&"#'()%*+,-+ Ucze interpretuje i tworzy teksty o charakterze matematycznym, u ywa j zyka matematycznego do opisu
Bardziej szczegółowoNOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH
NOWELIZACJA USTAWY PRAWO O STOWARZYSZENIACH Stowarzyszenie opiera swoją działalność na pracy społecznej swoich członków. Do prowadzenia swych spraw stowarzyszenie może zatrudniać pracowników, w tym swoich
Bardziej szczegółowoProgramowanie obiektowe w C++ Wykªad 4
Programowanie obiektowe w C++ Wykªad 4 dr Lidia St pie«akademia im. Jana Dªugosza w Cz stochowie L. St pie«(ajd) Programowanie obiektowe w C++ 1 / 26 Dziedziczenie - podstawy Denicja klasy dziedzicz cej
Bardziej szczegółowo2.Prawo zachowania masy
2.Prawo zachowania masy Zdefiniujmy najpierw pewne podstawowe pojęcia: Układ - obszar przestrzeni o określonych granicach Ośrodek ciągły - obszar przestrzeni którego rozmiary charakterystyczne są wystarczająco
Bardziej szczegółowoUKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH
UKŁAD ROZRUCHU SILNIKÓW SPALINOWYCH We współczesnych samochodach osobowych są stosowane wyłącznie rozruszniki elektryczne składające się z trzech zasadniczych podzespołów: silnika elektrycznego; mechanizmu
Bardziej szczegółowoARKUSZ OCENY OKRESOWEJ DLA STANOWISK PRACOWNICZYCH
Załącznik Nr 5 Do Regulaminu okresowych ocen pracowników Urzędu Miasta Piekary Śląskie zatrudnionych na stanowiskach urzędniczych, w tym kierowniczych stanowiskach urzędniczych oraz kierowników gminnych
Bardziej szczegółowoTemat: Funkcje. Własności ogólne. A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1
Temat: Funkcje. Własności ogólne A n n a R a j f u r a, M a t e m a t y k a s e m e s t r 1, W S Z i M w S o c h a c z e w i e 1 Kody kolorów: pojęcie zwraca uwagę * materiał nieobowiązkowy A n n a R a
Bardziej szczegółowoSpis treści 1. Wstęp 2. Projektowanie systemów informatycznych
Spis treści 1. Wstęp... 9 1.1. Inżynieria oprogramowania jako proces... 10 1.1.1. Algorytm... 11 1.2. Programowanie w językach wysokiego poziomu... 11 1.3. Obiektowe podejście do programowania... 12 1.3.1.
Bardziej szczegółowoĆwiczenia IV - Kontenery (pojemniki)
Ćwiczenia IV - Kontenery (pojemniki) 28 października 2010 Kontener Kontener jest to obiekt który zawiera w sobie obiekty innej klasy i ma zdefiniowane metody nimi zarządzające. Jednym z najprostszych przykładów
Bardziej szczegółowoUchwała nr 21 /2015 Walnego Zebrania Członków z dnia 11.12.2015 w sprawie przyjęcia Regulaminu Pracy Zarządu.
Uchwała nr 21 /2015 Walnego Zebrania Członków z dnia 11.12.2015 w sprawie przyjęcia Regulaminu Pracy Zarządu. Na podstawie 18 ust. 4.15 Statutu Stowarzyszenia, uchwala się co następuje. Przyjmuje się Regulamin
Bardziej szczegółowoJak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro)
Jak korzystać z Group Tracks w programie Cubase na przykładzie EWQLSO Platinum (Pro) Uwaga: Ten tutorial tworzony był z programem Cubase 4 Studio, ale równie dobrze odnosi się do wcześniejszych wersji,
Bardziej szczegółowoGdynia: Księgowość od podstaw Numer ogłoszenia: 60337-2012; data zamieszczenia: 15.03.2012 OGŁOSZENIE O ZAMÓWIENIU - usługi
1 z 5 2012-03-15 12:05 Adres strony internetowej, na której Zamawiający udostępnia Specyfikację Istotnych Warunków Zamówienia: www.pupgdynia.pl Gdynia: Księgowość od podstaw Numer ogłoszenia: 60337-2012;
Bardziej szczegółowoWZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA. Rada Europy. Strasburg, Francja SKARGA. na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka
WZÓR SKARGI EUROPEJSKI TRYBUNAŁ PRAW CZŁOWIEKA Rada Europy Strasburg, Francja SKARGA na podstawie Artykułu 34 Europejskiej Konwencji Praw Człowieka oraz Artykułu 45-47 Regulaminu Trybunału 1 Adres pocztowy
Bardziej szczegółowoEuropejska Akredytacja Indywidualna v2 (European Individual Accreditation)
Europejska Akredytacja Indywidualna v2 (European Individual Accreditation) Formularz Zgłoszeniowy EIA v2 dla kandydatów nie posiadających certyfikatu EQA (lub dla kandydatów posiadających certyfikat EQA
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ółowoStowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady
Stowarzyszenie Lokalna Grupa Działania EUROGALICJA Regulamin Rady Rozdział I Postanowienia ogólne 1 1. Rada Stowarzyszenia Lokalna Grupa Działania Eurogalicja, zwana dalej Radą, działa na podstawie: Ustawy
Bardziej szczegółowoAPI transakcyjne BitMarket.pl
API transakcyjne BitMarket.pl Wersja 20140314 1. Sposób łączenia się z API... 2 1.1. Klucze API... 2 1.2. Podpisywanie wiadomości... 2 1.3. Parametr tonce... 2 1.4. Odpowiedzi serwera... 3 1.5. Przykładowy
Bardziej szczegółowoSTOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU. ROZDZIAŁ I Postanowienia ogólne
Załącznik do uchwały Walnego Zebrania Członków z dnia 28 grudnia 2015 roku STOWARZYSZENIE LOKALNA GRUPA DZIAŁANIA JURAJSKA KRAINA REGULAMIN ZARZĄDU ROZDZIAŁ I Postanowienia ogólne 1 1. Zarząd Stowarzyszenia
Bardziej szczegółowo1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.
1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja
Bardziej szczegółowoElementy cyfrowe i układy logiczne
Elementy cyfrowe i układy logiczne Wykład Legenda Zezwolenie Dekoder, koder Demultiplekser, multiplekser 2 Operacja zezwolenia Przykład: zamodelować podsystem elektroniczny samochodu do sterowania urządzeniami:
Bardziej szczegółowoKonspekt lekcji otwartej
Konspekt lekcji otwartej Przedmiot: Temat lekcji: informatyka Modelowanie i symulacja komputerowa prawidłowości w świecie liczb losowych Klasa: 2 g Data zajęć: 21.12.2004. Nauczyciel: Roman Wyrwas Czas
Bardziej szczegółowoInstalacja programu. Omówienie programu. Jesteś tu: Bossa.pl
Jesteś tu: Bossa.pl Program Quotes Update to niewielkie narzędzie ułatwiające pracę inwestora. Jego celem jest szybka i łatwa aktualizacja plików lokalnych z historycznymi notowaniami spółek giełdowych
Bardziej szczegółowoNUMER IDENTYFIKATORA:
Społeczne Liceum Ogólnokształcące z Maturą Międzynarodową im. Ingmara Bergmana IB WORLD SCHOOL 53 ul. Raszyńska, 0-06 Warszawa, tel./fax 668 54 5 www.ib.bednarska.edu.pl / e-mail: liceum.ib@rasz.edu.pl
Bardziej szczegółowoParadygmaty programowania. Paradygmaty programowania
Paradygmaty programowania Paradygmaty programowania Dr inż. Andrzej Grosser Cz estochowa, 2013 2 Spis treści 1. Zadanie 2 5 1.1. Wprowadzenie.................................. 5 1.2. Wskazówki do zadania..............................
Bardziej szczegółowoAbstrakcyjny typ danych
Abstrakcyjny typ danych Abstrakcyjny Typ Danych (abstract data type-adt): zbiór wartości wraz z powiązanymi z nimi operacjami; operacje są zdefiniowane w sposób niezależny od implementacji; operacje są
Bardziej szczegółowo1 Przedmiot Umowy 1. Przedmiotem umowy jest sukcesywna dostawa: publikacji książkowych i nutowych wydanych przez. (dalej zwanych: Publikacjami).
WZÓR UMOWY ANALOGICZNY dla CZĘŚCI 1-10 UMOWA o wykonanie zamówienia publicznego zawarta w dniu.. w Krakowie pomiędzy: Polskim Wydawnictwem Muzycznym z siedzibą w Krakowie 31-111, al. Krasińskiego 11a wpisanym
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ółowoPORADNIK DLA CZŁONKA WSPÓLNOTY MIESZKANIOWEJ
PORADNIK DLA CZŁONKA WSPÓLNOTY MIESZKANIOWEJ SZCZECIN 2013r. 1. WSPÓLNOTA MIESZKANIOWA a) Charakter prawny Wspólnoty Wspólnota Mieszkaniowa nie posiada osobowości prawnej, może jednak nabywać prawa i zaciągać
Bardziej szczegółowoRegulamin Drużyny Harcerek ZHR
Regulamin Drużyny Harcerek ZHR (jednolity tekst obowiązujący od dnia 19.01.98 zgodnie z Uchwałą Naczelnictwa ZHR nr 80/7 z dnia 18.01.98) 1. Drużyna jest podstawową jednostką organizacyjną ZHR i podstawowym
Bardziej szczegółowoInstrukcja zarządzania systemem informatycznym służącym do przetwarzania danych osobowych
Załącznik nr 1 do Zarządzenia Nr 1/2013 Dyrektora Zespołu Obsługi Szkół i Przedszkoli w Muszynie z dnia 30 grudnia 2013 r. Instrukcja zarządzania systemem informatycznym służącym do przetwarzania danych
Bardziej szczegółowoNasze zachowanie, ubiór i kultura świadczy o nas samych i wpływa na to jak widzą i oceniają nas inni. Wbrew pozorom niewiele trzeba aby zrobić na
Nasze zachowanie, ubiór i kultura świadczy o nas samych i wpływa na to jak widzą i oceniają nas inni. Wbrew pozorom niewiele trzeba aby zrobić na kimś dobre wrażenie. Przestrzeganie tych kilku wskazówek
Bardziej szczegółowoTworzenie modelu obiektowego
Metody strukturalne tworzenia oprogramowania, opierają się na wyróżnianiu w tworzonym oprogramowaniu dwóch rodzajów składowych: pasywnych odzwierciedlających fakt przechowywania w systemie pewnych danych
Bardziej szczegółowoEGZAMIN MATURALNY Z MATEMATYKI
Arkusz zawiera informacje prawnie chronione do momentu rozpoczęcia egzaminu. MMA 016 KOD UZUPEŁNIA ZDAJĄCY PESEL miejsce na naklejkę dysleksja EGZAMIN MATURALNY Z MATEMATYKI POZIOM ROZSZERZONY DATA: 9
Bardziej szczegółowoUchwała z dnia 20 października 2011 r., III CZP 53/11
Uchwała z dnia 20 października 2011 r., III CZP 53/11 Sędzia SN Zbigniew Kwaśniewski (przewodniczący) Sędzia SN Anna Kozłowska (sprawozdawca) Sędzia SN Grzegorz Misiurek Sąd Najwyższy w sprawie ze skargi
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ółowoRegulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska
Regulamin Projektów Ogólnopolskich i Komitetów Stowarzyszenia ESN Polska 1 Projekt Ogólnopolski: 1.1. Projekt Ogólnopolski (dalej Projekt ) to przedsięwzięcie Stowarzyszenia podjęte w celu realizacji celów
Bardziej szczegółowoZARZĄDZENIE Nr Or/9/Z/05
ZARZĄDZENIE Nr Or/9/Z/05 Burmistrza Gminy i Miasta Lwówek Śląski z dnia 6 kwietnia 2005r. w sprawie udzielenia dnia wolnego od pracy Działając na podstawie art. 33 ust. 5 ustawy z dnia 8 marca 1990 r.
Bardziej szczegółowoKOMISJA WSPÓLNOT EUROPEJSKICH. Wniosek DECYZJA RADY
KOMISJA WSPÓLNOT EUROPEJSKICH Bruksela, dnia 13.12.2006 KOM(2006) 796 wersja ostateczna Wniosek DECYZJA RADY w sprawie przedłużenia okresu stosowania decyzji 2000/91/WE upoważniającej Królestwo Danii i
Bardziej szczegółowoPRZETWARZANIE DANYCH OSOBOWYCH
1 PRZETWARZANIE DANYCH OSOBOWYCH proinfosec Jarosław Żabówka proinfosec@odoradca.pl Wymogi rozporządzenia 2 ROZPORZĄDZENIE MINISTRA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI z dnia 29 kwietnia 2004 r. w sprawie
Bardziej szczegółowoZagospodarowanie magazynu
Zagospodarowanie magazynu Wymagania wobec projektu magazynu - 1 jak najlepsze wykorzystanie pojemności związane z szybkością rotacji i konieczną szybkością dostępu do towaru; im większa wymagana szybkość
Bardziej szczegółowoWtedy wystarczy wybrać właściwego Taga z listy.
Po wejściu na stronę pucharino.slask.pl musisz się zalogować (Nazwa użytkownika to Twój redakcyjny pseudonim, hasło sam sobie ustalisz podczas procedury rejestracji). Po zalogowaniu pojawi się kilka istotnych
Bardziej szczegółowoZałącznik nr 7 DO UMOWY NR. O ŚWIADCZENIE USŁUG DYSTRYBUCJI PALIWA GAZOWEGO UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH
Załącznik nr 7 DO UMOWY NR. O ŚWIADCZENIE USŁUG DYSTRYBUCJI PALIWA GAZOWEGO UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH UMOWA O WZAJEMNYM POWIERZENIU PRZETWARZANIA DANYCH OSOBOWYCH zawarta
Bardziej szczegółowoOFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH
OFERTA WYKŁADÓW, WARSZTATÓW I LABORATORIÓW DLA UCZNIÓW KLAS IV- VI SZKÓŁ PODSTAWOWYCH, GIMNAZJALNYCH I ŚREDNICH Strona 1 z 9 SPIS ZAJĘĆ WRAZ Z NAZWISKAMI WYKŁADOWCÓW dr hab. Mieczysław Kula Poznaj swój
Bardziej szczegółowobiuro@cloudtechnologies.pl www.cloudtechnologies.pl Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia
Warszawa, 11 kwietnia 2016 roku Projekty uchwał dla Zwyczajnego Walnego Zgromadzenia w sprawie przyjęcia porządku obrad Zwyczajne Walne Zgromadzenie przyjmuje następujący porządek obrad: 1. Otwarcie Zgromadzenia,
Bardziej szczegółowoC++ - [4-7] Polimorfizm
Slajd 1 z 14 C++ - [4-7] Polimorfizm Nysa 2004-2013. Autor: Wojciech Galiński. wersja dnia 20 maja 2013 r. Slajd 2 z 14 Polimorfizm i klasa polimorficzna POLIMORFIZM (cytat z Wikipedii) (wielopostaciowość)
Bardziej szczegółowo