Nowa wersja
|
Poprzednia wersja
|
pl:dydaktyka:jimp2:2015:labs:dziedziczenie [2015/03/08 15:54] kkutt utworzono |
pl:dydaktyka:jimp2:2015:labs:dziedziczenie [2019/06/27 15:50] (aktualna) |
class PracownikNaukowy : public Pracownik{...} | class PracownikNaukowy : public Pracownik{...} |
class PradownikAdministracyjny: public Pracownik{...}; | class PradownikAdministracyjny: public Pracownik{...}; |
//Dziedziczenie wielokrotne - patrz Lab9 | //Dziedziczenie wielokrotne |
class Stażysta : public Student, PracownikNaukowy {...}; | class Stażysta : public Student, PracownikNaukowy {...}; |
</code> | </code> |
| |
====== Ćwiczenia ====== | ====== Ćwiczenia ====== |
| <WRAP center round important 60%> |
| **UWAGA**\\ |
| Przesyłając rozwiązania zadań mailowo należy zamieścić (w formie komentarza w kodzie lub w treści maila) odpowiedzi na problemy postawione w zadaniach 2-4 **wraz z uzasadnieniami**. Zadanie bez właściwego uzasadnienia nie będzie zaliczone. |
| </WRAP> |
| |
- [1 plus] Przetestuj przykład z sekcji [[#metody_skladowe|Metody składowe]] | - [1 plus] Przetestuj przykład z sekcji [[#metody_skladowe|Metody składowe]] |
- **[1 punkt] Wykorzystując klasę [[.:klasy1#deklaracja_klasy|Punkt]], napisz klasę Punkt3D dziedziczącą po niej i implementującą dodatkowo metodę //double distance(Punkt3D)//. W każdym z konstruktorów i destruktorów klas Punkt i Punkt3D wypisz na ekran jakąś wiadomość i zaobserwuj w jakiej kolejności wywołują się konstruktory i destruktory.** | - **[1 punkt] Wykorzystując klasę [[.:klasy1#deklaracja_klasy|Punkt]], napisz klasę Punkt3D dziedziczącą po niej i implementującą dodatkowo metodę //double distance(Punkt3D)//. W każdym z konstruktorów i destruktorów klas Punkt i Punkt3D wypisz na ekran jakąś wiadomość i zaobserwuj w jakiej kolejności wywołują się konstruktory i destruktory.** |
- **[1 punkt] Mając dwa obiekty, jeden klasy Punkt a drugi kalsy Punkt3D o nazwach //punkt2d// i //punkt3d//, wywołaj punkt2d.distance(punkt3d). Co sie stało?** | - **[1 punkt] Mając dwa obiekty, jeden klasy Punkt a drugi klasy Punkt3D o nazwach //punkt2d// i //punkt3d//, wywołaj punkt2d.distance(punkt3d). Co sie stało?** |
- **[1 punkt] W klasie Punkt2D istnieje przeciążony operator wpisywania do strumienia ("<<"). Co się stanie jeśli będziesz chciał wypisać obiekt klasy Punkt3D w następujący sposób:** <code cpp>Punkt3D p3d(1,2,3); | - **[1 punkt] W klasie Punkt2D istnieje przeciążony operator wpisywania do strumienia ("<<"). Co się stanie jeśli będziesz chciał wypisać obiekt klasy Punkt3D w następujący sposób:** <code cpp>Punkt3D p3d(1,2,3); |
cout << p3d << endl;</code> | cout << p3d << endl;</code> |
| |
<WRAP center round important 60%> | <WRAP center round important 60%> |
Za tydzień kolokwium! Czy pamiętasz, że: | Za tydzień kolokwium! Czy pamiętasz o nim? |
* obowiązuje na nim materiał ze wszystkich laboratoriów? | |
* kolokwium rozwiązywane jest na kartkach? | Informacje organizacyjne i przykładowe pytania znajdują się [[..:start#kolokwium|tutaj]]. |
* pytania będą teoretyczne (dotyczące treści zawartych we wprowadzeniach do laboratorium) i praktyczne (związane z napisaniem kilku linii kodu)? | |
</WRAP> | </WRAP> |
| |