31.12.2014 Views

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

Paskaitų konspektai - Matematikos ir Informatikos fakultetas ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Metodai, apibr÷žti klas÷s aprašo viduje<br />

Metodai, apibr÷žti klas÷s aprašo viduje (h-faile) yra inline-metodai, t.y.<br />

kompiliatorius jų iškvietimo vietoje stengsis tiesiogiai įterpti metodo kūną, o ne<br />

kviesti klas÷s realizacijos modulyje esantį kūną. Tuo būdu sutaupomas metodo<br />

kvietimo laikas:<br />

class String<br />

{<br />

...<br />

const char* getChars() const {return buffer;}<br />

};<br />

int main()<br />

{<br />

String text ("hello");<br />

const char* chars = text.getChars(); // chars = text.buffer<br />

...<br />

}<br />

Praktikoje klas÷s viduje apibr÷žiami tik kai kurie trumpučiai vienos eilut÷s metodai,<br />

tuo pačiu įnešant daugiau aiškumo į klas÷s aprašą. inline-metodai gali būti apibr÷žti<br />

<strong>ir</strong> klas÷s išor÷je, naudojant raktinį žodį inline:<br />

inline const char* String::getChars() const<br />

{<br />

return buffer;<br />

}<br />

Bet kokiu būdu aprašytas inline-metodas – tai tik rekomendacija kompiliatoriui, kad<br />

jis vietoje metodo kvietimo, įterptų metodo kūną. Kompiliatoriai gali to <strong>ir</strong> neatlikti.<br />

Kai kurie griežtesni kompiliatoriai spausdina įsp÷jimus apie inline-metodus, kurių<br />

kūnai niekados nebus įterpti į kodą, o visuomet bus formuojamas metodo kvietimas.<br />

73

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

Saved successfully!

Ooh no, something went wrong!