View Single Post
Staro 03.06.2009., 04:19   #12
marsal
Premium
 
Datum registracije: Jun 2006
Lokacija: Zagreb
Postovi: 75
Citiraj:
Autor svebee
mene zanima zašto pisati prototip funkcije ako se cijela funkcija može jednostavno napisati ispred main i sve šljaka kako treba?
Nisam čitao cijeli thread pa ako otkrivam toplu vodu sori

Dakle, ako se dobro sjećam, prototipove funkcije koristiš da bi dao kompajleru do znanja što da očekuje od funkcija (metoda), čije tijelo može biti bilo gdje "ispod" Main-a. Kompajler čita program liniju po liniju od vrha (početka) i mora znati kako funkcija izgleda prije nego je "sretne" u samom kodu.

Znači, jednostavnije rečeno, ti najaviš da ćeš koristiti funkciju prototipom, u Main-u pozoveš tu funkciju, a kompajler zna da će ona biti realizirana u daljnjem programu (inače javi grešku). Korisno (zapravo i više nego korisno) kad imaš složenije programe.

Zašto je kompajler tako "glup"? Klik

Doduše, najbolje bi bilo kad bi radio sve u OO paradigmi, znači sve funkcije/metode "trpao" u klase i u Main ostavio samo pozive glavnih funkcija. C++ omogućava ovakav "hibridni" pristup, ali to je Zapravo, kad malo bolje pogledam, tvoj program je isključivo proceduralan. Sve je iz C-a, osim ispisa.

Ako želiš zbilja (is)koristiti C++, probaj sad napraviti taj isti program pomoću klasa, tako da u Main-u imaš samo nešto tipa (ovo je bez razmišljanja, samo radi ilustracije, dizajn klasa i metoda može naravno biti drukčiji, mogu i ne moraju biti statičke):

Code:
int main() 
{
Prikaz.Unesi("Unesi kompleksni broj oblika x + yi: ", x, y);
Prikaz.Ispisi("Rezultat je: ", Pretvorba.PretvoriUPolarni(x,y));
return 0:
}
Probaj proširiti klase dodatnim članovima. Napraviti klasu (ili strukturu) kompleksnih brojeva koja će sadržavati i operacije nad njima. Malo se igraj s nasljeđivanjem, uglavnom, ako te zanima programiranje, C++ je dobra stvar za (na)učiti. Ja se držim C#, jer nemam više toliko živaca za C++
marsal je offline   Reply With Quote