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.

Tipų konversijos operatoriai<br />

Prisiminkime, kad tipų konversija užrašoma taip:<br />

double d = 8.15;<br />

int i = (int) d;<br />

Mes jau mat÷me, jog galima aprašyti kokią nors klasę X su konstruktoriumi,<br />

leidžiančiu išreikštiniu arba automatiniu būdu kito tipo T objektą konvertuoti į klas÷s<br />

X tipo objektą (T -> X). Tipas T gali būti kita klas÷ ar bazinis C++ kalbos tipas.<br />

Galima <strong>ir</strong> atv<strong>ir</strong>kštin÷ konversija: klas÷je X aprašyti operatorių, kuris klas÷s X objektą<br />

konvertuotų į tipo T objektą (X -> T). Pvz., standartin÷je bibliotekoje ifstream tipo<br />

objektą galima konvertuoti į int tipo reikšmę:<br />

class ifstream // input file stream<br />

{<br />

...<br />

operator int () const {return errorOccured == false;}<br />

};<br />

Tokiu būdu, klas÷s ifstream objektai gali būti naudojami visur, kur <strong>ir</strong> sveikieji<br />

skaičiai:<br />

// operator3.cpp<br />

int main ()<br />

{<br />

ifstream file ("integers.txt");<br />

int i;<br />

file >> i;<br />

while (file) // calles: file.operator int ()<br />

{<br />

cout i;<br />

}<br />

cout

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

Saved successfully!

Ooh no, something went wrong!