lista6.pdf

(78 KB) Pobierz
106421499 UNPDF
UniwersytetZielonog ó rski
InstytutSterowaniaiSystem ó wInformatycznych
ProgramowanieobiektowewC++
Lista6 Polimor zmorazfunkcjewirtualne
1 wiczenia
1.Dlaschematudziedziczenia A ! B ! C :
4.W¢wiczeniu(1)zastanowi¢siƒjakzrealizowa¢za-
daniekonstruktorawirtualnego.
(a)zde niowa¢klasyprzyza“o»eniu,»eklasa A ma
by¢klasƒabstrakcyjn¡,
(b)wyposa»y¢wszystkieklasywwirtualn¡metodƒ
nazwazwracaj¡c¡nazwƒklasy,
(c)doda¢destruktorywirtualne,
(d)doda¢funkcjƒglobaln¡zaprzyja„nion¡zklas¡
A,takabymog“awykona¢tosamocofunkcje
zpodpunktu(b).
5.Zrealizowa¢poni»szyschematdziedziczenia(popra-
wi¢tak»erelacjƒpomiƒdzyklasami):
2.Napisa¢de nicjƒklasyztrzemaprze“adowanymi
funkcjamiwirtualnymi.Stworzy¢now¡klasƒdzie-
dzicz¡capopierwszej,ztylkojedn¡prze“adowan¡
funkcj¡wirtualn¡.Utworzy¢obiektklasypochodnej
iodpowiedzie¢nanastƒpuj¡cepytania:
Ka»dazklaspowinnaposiada¢funkcjewirtualne
rysuj(),przesun()orazobrot().Dokona¢wir-
tualnegowywo“aniatychfunkcjidlar ó »negotypu
obiekt ó w.
(a)Czymo»nawywo“a¢wszystkietrzybazowe
funkcjepoprzezobiektklasypochodnejiewen-
tualniewjakispos ó b?
(b)Czypozrzutowaniuadresuklasypochodnejna
adresklasybazowejmo»nawywo“a¢wszystkie
funkcje?
(c)Czypousuniƒciude nicjifunkcjiwklasiepo-
chodnejmo»nawykona¢podpunkt(a)?
6.Napisa¢klasƒzawieraj¡c¡dwiemetodywykonuj¡ce
tosamozadanie,jedn¡wwersjiwirtualnej,adru-
g¡niewirtualnej.Doda¢now¡klasƒdziedzicz¡c¡z
wspomnianejklasy,anastƒpniepor ó wna¢czasywy-
wo“aniaka»dejzfunkcji(pos“u»y¢siƒnp.funkcj¡
clock() pliknag“ ó wkowytime.h).
3.Poprawi¢b“ƒdyprogramie,anastƒpnieprzeanalizo-
wa¢jegodzia“anie.
7.Napisa¢kr ó tkiprogramobrazuj¡cyr ó »nicƒpomiƒ-
dzywywo“aniemfunkcjiwirtualnejwewn¡trznor-
malnejfunkcjisk“adowejklasy,awywo“aniemfunk-
cjiwirtualnejwewn¡trzkonstruktora.Programpo-
winienpokaza¢,»etakiedwawywo“aniageneruj¡
r ó »newyniki.
#include<iostream> |
|voidmain(){
usingnamespacestd; | Xob1;Yob2;Zob3;
| ob2.fun1;ob2.fun2;
classX{ |
public: | X*wsk=&ob2;
staticintx1; | wsk>fun1();wsk>fun2();
voidvirtualfun1() | wsk>X::fun1();wsk>X::fun2();
{cout<<"funkcjafun1zklasyX";} |
staticvoidvirtualfun2()=0; | wsk=&ob3;
}; | wsk>fun1();wsk>fun2();
| wsk>X::fun1();wsk>Z::fun2();
classY:publicX{ |}
public: |
voidvirtualfun1() |
{cout<<"funkcjafun1zklasyY";} |
voidfun2() |
{cout<<"funkcjafun2zklasyY";} |
}; |
|
classZ:publicY{ |
public: |
voidvirtualfun1() |
{cout<<"funkcjafun1zklasyZ";} |
voidvirtualfun2()=0 |
{cout<<"funkcjafun2zklasyZ";} |
8.Danes¡klasybazowerezystor,kondensatoricew-
ka.Wyprowadzi¢znichklasypochodne:cewkarze-
czywistaikondensatorrzeczywisty,aznichzkolei
uk“adRLC.Maj¡cdodyspozycjitakprzygotowany
zestawelement ó wprostych,zde niowa¢uk“ad_rez
zawieraj¡cydynamiczn¡tablicƒwska„nik ó wdota-
kichobiekt ó w.Wyznaczy¢charakterystykƒrezonan-
sow¡wzadanymprzedzialeczƒstotliwo–cidlaszere-
gowegoir ó wnoleg“egopo“¡czeniaelement ó w.
};
|
106421499.001.png 106421499.002.png 106421499.003.png
Zgłoś jeśli naruszono regulamin