24.03.2015 Views

13 skyrius - techmat.vgtu.lt

13 skyrius - techmat.vgtu.lt

13 skyrius - techmat.vgtu.lt

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.

. . .<br />

Atvirkštiniam pertvarkymui būtina parašyti vadinamąjį pertvarkantįjį konstruktorių. Visą<br />

sintaksę paaiškinsim 3-osios programos pagrindu.<br />

4 pavyzdys.<br />

#include <br />

using namespace std;<br />

//<br />

class Counter{<br />

protected:<br />

unsigned int count;<br />

public:<br />

Counter( ): count( 0 ) { }<br />

Counter( int c ): count( c ) { }<br />

//<br />

~Counter( ) { }<br />

//<br />

unsigned int returnCount( ){<br />

return count;<br />

}<br />

Counter operator++( ){<br />

return Counter( ++count );<br />

}<br />

};<br />

//<br />

class CounterDown: public Counter{<br />

public:<br />

CounterDown( ): Counter( ) { }<br />

CounterDown( int c ): Counter( c ) { }<br />

//<br />

~CounterDown( ){ }<br />

//<br />

CounterDown( Counter c ) { // pertvarkantysis konstruktorius<br />

};<br />

//<br />

int main( ){<br />

count = c.returnCount( ); // iš Counter tipo į CounterDown<br />

}<br />

//<br />

CounterDown operator--( ){<br />

return CounterDown( --count );<br />

//return Counter( --count ); // dabar galimas ir toks<br />

// reikšmės grąžinimas: neišreikštai būtų<br />

// kviečiamas pertvarkantysis konstruktorius<br />

}<br />

169

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

Saved successfully!

Ooh no, something went wrong!