«« ( Date ) »» // «« ( Thread ) »» // nastava - 2005

Re: RI3PJM

by Vladimir Tomic
petak, 30. septembar 2005 - 01:58.

>> Tek sad sam primetio (iako sam izasao na ispit) da u drugom
>> pitanju iz C++ (OOP1) u septembarskom roku kaze:
>> "Zasto se (po pravilu) definicije klasa na jeziku C++ pisu u
datotekama-zaglavljima (*.h)?"
>> Zar se ne pisu *deklaracije* u zaglavljima (kao sto pise u "Thinking in
C++", Bruce Eckel).
>> Kad sam odgovarao na pitanje, odgovarao sam za deklaracije...


> A reci mi kakva je precizno razlika izmedu definicije i deklaracije?
> BTW možda je Kraus odn. Tartalja mislio da neke metode koje su kratke
napišeš u zaglavlju, pa zato izraz definicija ne bi bio sasvim ispravan.



Deklaracija (prototip) metode govori samo o interfejsu neke metode i nalazi
se u DEFINICIJI klase:
- tip koji vraca
- ime metode
- argumenti (broj i tipovi)
- (eventualno) koje izuzetke baca
- {}: 'prazno telo'

Kasnije je definises izvan te klase kao ImeKlase::imeMetode(...) { <ovde
telo> }

npr:

class ImeKlase {

void imeMetode(args) throws exceptions {}; //ovo je deklaracija

};

void imeKlase::imeMetode(args) throws exceptions {
blablavla;
} //ovo je definicija



ili:

class ImeKlase {

void imeMetode(args) throws exceptions {
} //ovo je definicija

};



E sad, nesporazum je u tome sto je Tartalja pitao za klase (koje ne mozes da
deklarises vec samo da definises, a proizvoljan broj metoda te klase mozes
samo deklarisati, pa definisati kasnije), klase se po 'pravilu' (dogovor)
DEFINISU u .h fajlovima; isto tako u definiciji klase se 'pravilno' samo
deklarisu metode (sem veoma prostih, kao sto Rade rece), pa se kasnije
definisu...

Poz, Vladimir