13 skyrius - techmat.vgtu.lt
13 skyrius - techmat.vgtu.lt
13 skyrius - techmat.vgtu.lt
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