previous next Up Title Contents Index

20.3.5 Arvostelu valinnoista

Edellä tehdyillä valinnoilla ohjelmasta saadaan toimiva tiedon pääteeltä lukua myöten. Kuitenkin kuten tehtävässäkin todettiin, tulee muutoksi paljon, jos jäsenen attribuuttien määrä muuttuu.

Itse asiassa sijoita ja kentta_jonoksi sekä kysymys() ovat riittävä määrä jäsenen kysymysten toteuttamiseksi. Näitä metodeja käyttäen voimme samalla muuttaa ison osan aikaisemmin tehtyjä "itseään toistavia" jäsenen metodeja ja muita aliohjelmia silmukoiksi, mm:

	ostream &operator<<(ostream &os,const cJasen &jasen)
	{
	  int k,kenttia=jasen.kenttia();
	
	  for (k=0; k<kenttia; k++)
	    os << jasen.kentta_jonoksi(k) << jasen.erotin;
	
	  return os;
	}
	
	istream &operator>>(istream &is,cJasen &jasen)
	{
	  int k,kenttia=jasen.kenttia();
	
	  for (k=0; k<kenttia; k++) {
	    jasen[k].ota_seuraava(is,jasen.erottimet);
	  }
	  if ( jasen.tunnus_nro >= jasen.seuraava_nro )
	    jasen.seuraava_nro = jasen.tunnus_nro + 1;
	
	  tyhjenna(is);  // ohittaa loppurivin
	  return is;
	}


previous next Up Title Contents Index