Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
32
ROZDZIAŁ1.WPROWADZENIE
Procedury,funkcjeimetody
Chcącuniknąćpowtarzaniafrazynprocedury,funkcjelubmetody”za
każdymrazem,gdybędziemychcielimówićopodprogramie,którymoże
zostaćwywołany,zazwyczajbędziemyodnosićsiędonichwszystkichjako
nprocedur”.Wyjątkiemjestsytuacja,gdybędziemyomawiaćprogramy
wtakichjęzykach,jakC,któremajątylkofunkcjewówczasbędziemy
sięodwoływaćsiędonichjakonfunkcji”
.Analogicznie,przyomawianiu
takiegojęzyka,jakJava,wktórymistniejątylkometody,będziemyużywać
tegowłaśnieterminu.
Funkcjawogólnościzwracawartośćjakiegośtypu(ntypzwracany”),
podczasgdyproceduramożeniezwracaćżadnejwartości.Cipodobne
języki,którezawierajątylkofunkcje,traktująproceduryjakofunkcjeospe-
cjalnymtypiezwracanymnvoid”,abyzaznaczyćbrakzwracanejwartości.
Wjęzykachzorientowanychobiektowo,jakJavaiC++,używanyjestter-
minnmetody”.Mogąonezachowywaćsięjakfunkcjelubprocedury,ale
powiązanezokreślonąklasą.
WjęzykuCskładniadefiniującablokijestokreślananastępująco:
1.
Jednymztypówinstrukcjijestblok.Blokimogąpojawiaćwszędzietam,
gdziemogąwystępowaćinnetypyinstrukcji,takiejakinstrukcjeprzypisa-
nia.
2.
Blokjestsekwencjądeklaracji,poktórychnastępujesekwencjainstrukcji,
całośćjestotoczonanawiasamiklamrowymi.
Zauważmy,żetaskładniapozwalanazagnieżdżanieblokówwewnątrzsiebie.To
zagnieżdżanieokreślanejestmianemstrukturyblokowej.RodzinajęzykówCma
strukturęblokowąztymwyjątkiem,żefunkcjiniemożnadefiniowaćwewnątrz
innejfunkcji.
Powiemy,żedeklaracja
D
nnależydo”bloku
B
,jeśli
B
jestnajbliższym
zagnieżdżonymblokiemzawierającym
D
;inaczejmówiąc,
D
jestzlokalizowane
wewnątrzB,aleniewżadnyminnymblokuzagnieżdżonymwewnątrzB.
Regułazasięgustatycznegodladeklaracjizmiennychwjęzykachostruk-
turzeblokowejjestnastępująca:jeślideklaracja
D
nazwy
x
należydobloku
B
,wówczaszasięgiem
D
jestcałyblok
B
zwyjątkiemdowolnychbloków
B!
zagnieżdżonych(dodowolnejgłębokości)wewnątrz
B
,wktórych
x
zostało
ponowniezadeklarowane.Ponownadeklaracja
x
w
B!
następujewtedy,gdy
istniejejakaśdeklaracjaD!tejsamejnazwyxnależącadoB!.
Równoważnysposóbwyrażeniatejregułypoleganaskupieniusięnaużyciu
nazwy
x
.Niech
B1
,
B2
...,
Bk
będąblokamiotaczającymiokreśloneużycie
,
nazwy
x
,przyczym
Bk
jestblokiemnajmniejszym,zagnieżdżonymwewnątrz
Bk11
,któryjestzagnieżdżonywewnątrzbloku
Bk12
itakdalej.Szukamy
największego
ź
takiego,żeistniejedeklaracjanazwy
x
należącado
Bi
.Nasze