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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Kopijavimo konstruktorių galima iškviesti dvejopai: kaip <strong>ir</strong> visus kitus<br />

konstruktorius objekto kūrimo metu, arba naudojant priskyrimo simbolį. Priskyrimo<br />

ženklas objekto sukūrimo metu kviečia kopijavimo konstruktorių, o ne priskyrimo<br />

operatorių:<br />

int main ()<br />

{<br />

Date yesturday (2003, 2, 27);<br />

Date date1 = yesturday; // copy constructor<br />

Date date2 (yesturday); // preffered syntax<br />

}<br />

Programa atspausdins:<br />

Date(2003 2 27)<br />

Date(Date&)(2003 2 27)<br />

Date(Date&)(2003 2 27)<br />

~Date(2003 2 27)<br />

~Date(2003 2 27)<br />

~Date(2003 2 27)<br />

Jei klas÷ neturi kopijavimo konstruktoriaus, tuomet jį sugeneruos kompiliatorius.<br />

Šiuo atveju klas÷s duomenys bus inicializuoti panariui. Mūsų klas÷s Date atveju<br />

kompiliatoriaus sugeneruotas kopijavimo konstruktorius veiktų lygiai taip pat, kaip <strong>ir</strong><br />

mūsų parašytasis. Jis netiktų tuomet, kai klas÷ savyje turi rodykles į kitus objektus.<br />

Tuomet butų kopijuojamos tik pačios rodykl÷s (adresai), o ne objektai, į kuriuos jos<br />

rodo.<br />

63

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

Saved successfully!

Ooh no, something went wrong!