lista5.pdf
(
104 KB
)
Pobierz
106421494 UNPDF
UniwersytetZielonog
ó
rski
InstytutSterowaniaiSystem
ó
wInformatycznych
ProgramowanieobiektowewC++
Lista5
Podstawytechnikidziedziczenia
1
‚
wiczenia
1.Poda¢deklaracjeklasypodstawowejorazklaspo-
chodnych(przeanalizowa¢r
ó
wnie»,czyposzczeg
ó
l-
nenazwyklass¡odpowiednie,czyistniejemo»liwo–¢
ichzmianynabardziejadekwatne),takabyodzwier-
ciedla“yponi»szydigrafrelacjipomiƒdzyklasami:
classmotocykl{/*...*/}M,*wsk_M;
classHonda:publicmotocykl{
/*...*/}H,*wsk_H;
classDucati:publicmotocykl{
/*...*/}D,*wsk_D;
classSk“adak:publicHonda,publicDucati{
/*...*/}S,*wsk_S;
Kt
ó
rezponi»szychzestaw
ó
winstrukcjis¡b“ƒdne,a
kt
ó
repoprawneodpowied„uzasadni¢?
Ka»dazklasmaposiada¢zadeklarowan¡funkcjƒ
wy–wietlaj¡c¡
gurƒonazwierysuj().Zde
niowa¢
obiektyinapisa¢przykl“adowewywo“aniazzastoso-
waniemfunkcjirysuj().
(a)M=H;wsk_H=wsk_M;
(b)D=M;wsk_D=wsk_M;
(c)M=H;wsk_M=wsk_H;
(d)H=S;wsk_M=wsk_S;
(e)D=H;wsk_H=wsk_S;
(f)M=S;wsk_S=&D;
5.Danajestklasa:
classfLiczbaZespolona{
private:
floatRe,Im;
public:
//uzupe“ni¢wew“asnym
//zakresie;-)
2.Zadeklarowa¢klasƒpodstawow¡orazklasypochod-
ne,takabyodzwierciedla“ynastƒpuj¡cydigrafrela-
cjipomiƒdzyklasami:
};
orazfunkcjaoperatorowa:
Zrealizowa¢¢wiczeniebezorazzeuwzglƒdnieniem
klaswirtualnych.Zde
niowa¢obiektyinapisa¢przy-
k“adowewywo“aniafunkcji.Jakijestdostƒpdop
ó
l
klaspodstawowychb¡d„poprzednichwklasachpo-
chodnych?
fLiczbaZespolonaoperator+(fLiczbaZespolona,
fLiczbaZespolona);
Zde
niowa¢konstruktorkonwertuj¡cytak,bypo-
prawneby“ywyra»enia:
licz_zespz1,z2;
floata=2.5;
z1=z2+a;z2=a+z1;
3.Danes¡klasy:
classA{private:inta;};
classB{protected:intb;};
classC{public:intc;};
classD:protectedA,publicB{};
classE:publicD,protectedC{public:A::c;};
classF:privateE,publicA{};
6.Uzupe“ni¢klasƒstring:
classstring
introz;
char*wsk;
public:
//...metody
Zrealizowa¢nastƒpuj¡ce¢wiczenia:
};
ofunkcjƒoperatorow¡:
(a)odtworzy¢diagramdziedziczenia,
(b)okre–li¢kolejno–¢wywo“ywaniakonstruktor
ó
w
dlaka»dejzklas,
(c)okre–li¢rodzajdostƒpudozmiennych
a
,
b
,
c
w
klasach
D
,
E
oraz
F
.
ostream&operator<<(ostream&,conststring&);
orazopozosta“eelementy,takabypoprawneby“y
instrukcje:
strings("ABC");
cout<<s<<endl;
4.Danes¡szkieletyklas:
7.Przeprowadzi¢nastƒpuj¡ceeksperymentyorazzin-
terpretowa¢wyniki:
Dodatkowoobiektka»dejklasyzawierawsobiepo
jednymobiekcieklas,odkt
ó
rychbezpo–redniodzie-
dziczy.Przyk“adowo,obiektklasy
E
,dlakt
ó
rejkla-
samipodstawowymis¡
A
,
B
oraz
C
,posiadajako
komponentypojednymelemencietypu
A
,
B
i
C
.
Dlaka»dejzklaszde
niowa¢konstruktoridestruk-
tor,anastƒpniewprogramieg“
ó
wnymprzetestowa¢
kolejno–¢ichwywo“ywaniadlaobiektuka»degozza-
deklarowanychtyp
ó
w.
(a)Danes¡konwersjezde
niowaneprzezu»ytkow-
nika:
X
!
Y
,
Y
!
Z
.Czyistniejeniejawna
konwersja
X
!
Z
?
(b)Danajestkonwersja
X
!
float
.Czyistnieje
konwersja
X
!
int
?
(c)Danes¡konwersje:
X
!
float
,
X
!
int
,
X
!
char
.Czypoprawnajestinstrukcja
cout<<x<<endl,gdzie
x
jestobiektemkla-
sy
X
?
10.Niechbƒdziedanynastƒpuj¡cytypdanych:
Je»elipodaneniejawnekonwersjes¡niemo»liwe,to
czymo»najeprzeprowadzi¢bezdodawanianowych
metodkonwertuj¡cych?
classTablica1D{
protected:
introzmiar1;
int*tab;
8.Wykorzystuj¡cmechanizmdziedziczeniazbudowa¢
klasyodzwierciedlaj¡cenastƒpuj¡cydigrafrelacji
pomiƒdzyklasami:
};
reprezentuj¡cydynamiczn¡tablicƒjednowymiaro-
w¡.Doklasydoda¢nastƒpuj¡ceelementy:
(a)domniemanykonstruktorinicjalizuj¡cy,de-
struktor,operatorprzypisania,orazmetody:
wyprowadzaj¡c¡zawarto–¢tablicynaekran,
wyznaczaj¡c¡warto–ciminimaln¡imaksymal-
n¡,sortuj¡c¡tablicƒ,
Ka»daklasapochodnamaposiada¢conajmniejjed-
n¡zmienn¡dodatkow¡wzglƒdemswoichklaspod-
stawowych.Dziedziczeniewykona¢nadwasposoby:
konwencjonalnieorazzu»yciemklaswirtualnych.W
programieg“
ó
wnymzadeklarowa¢obiektyka»dejz
klasisprawdzi¢,kt
ó
reznichnajbardziejzyskuj¡(i
czywog
ó
lezyskuj¡?)nadziedziczeniuwirtualnym
(dosprawdzeniawielko–ciobiektuzastosowa¢funk-
cjƒsizeof()).
(b)wykorzysta¢powy»sz¡klasƒistosuj¡cmecha-
nizmdziedziczenianapisa¢de
nicjƒklasyTa-
blica2D,kt
ó
rabƒdzieposiada“atakiesame
metodyoperuj¡cenatablicydwuwymiarowej,
przyczymsortowanieorazszukanieminimumi
maksimumwykona¢dlaka»degowierszaosob-
no,awynikwprzypadkuwarto–ciminimalnych
orazmaksymalnychzwr
ó
ci¢jakotablicƒwarto-
–ci,
(c)wykorzystuj¡cklasƒTablica1DorazTablica2D
zrobi¢tosamocowpunkcie(b),tylkodla
tablicytr
ó
jwymiarowej(sortowanieiszukanie
min/maxzrealizowa¢wodniesieniudopierw-
szegowymiarutablicy).
9.Skonstruowa¢klasyodzwierciedlaj¡cenastƒpuj¡cy
grafdziedziczenia:
11.Zde
niowa¢klasƒbazow¡Subjectzawieraj¡c¡trzy
funkcjef(),g()ih().Nastƒpniezklasytejwypro-
wadzi¢klasyImplementation1,Implementation2
orazProxy.Taostatniapowinnazawiera¢wska„nik
doobiektutypuSubject,awszystkiejejmetody
powinnyzwraca¢iby¢wywo“ywanenarzeczwska„-
nikatakiegow“a–nietypuobiektu.Konstruktorkla-
syProxypowinieninicjalizowa¢wska„nikdotypu
Subjectzainstalowanegowjejwnƒtrzu.Wprogra-
mieg“
ó
wnymzde
niowa¢dwar
ó
»neobiektyProxy,
posiadaj¡ceinn¡implementacjƒ.Nastƒpniezmody-
kowa¢klasƒProxywspos
ó
bumo»liwiaj¡cydyna-
miczn¡zmianƒimplementacjitejklasy.
Plik z chomika:
elaroma
Inne pliki z tego folderu:
lista1.pdf
(66 KB)
lista2.pdf
(56 KB)
lista3.pdf
(65 KB)
lista4.pdf
(57 KB)
lista5.pdf
(104 KB)
Inne foldery tego chomika:
Zgłoś jeśli
naruszono regulamin