02.11.2014 Views

Proceduralni jezici - FESB

Proceduralni jezici - FESB

Proceduralni jezici - FESB

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Strukturalna ekvivalencija<br />

Dva tipa su strukturalno ekvivalentna ako imaju istu definiciju članova strukture . Strukturalna ekvivalencija se označava s<br />

S, a definira se na sljedeći način:<br />

(a) T S T<br />

(b) Za deklaraciju oblika<br />

Type T = Q;<br />

T S Q<br />

ako T i Q su definirani pomoću istih konstruktora tipa i na isti način.<br />

To znači da u prijašnjem primjeru<br />

type PackerSalaries = int[100];<br />

type AssemblySizes = int[100];<br />

PackerSalaries salary;<br />

AssemblySizes size;<br />

salary S size<br />

pošto su oba niza s 100=100 i int S int.<br />

C i C++ u kontroli tipova koriste strukturalnu ekvivalenciju osim za strukture i klase, kod kojih se koristi ekvivalencija po<br />

imenu. Kod nizova ignorira se veličina niza. Java koristi strukturalnu ekvivalenciju za skalarne tipove. Kod nizova<br />

zahtijeva ekvivalenciju po imenu, bez obzira na veličinu niza. Za klase koristi ekvivalenciju po imenu osim što se moţe<br />

koristiti podklasa na mjestu gdje je definirana klasa.<br />

43

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!