Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

16.5 Dynaamiset taulukot C++:ssa

C++:ssa edällä mainittu dynaaminen taulukko voidaan toteuttaa käyttäjän kannalta todella joustavaksi:

dyna\taul_d.cpp -esimerkki dynaamisesta taulukosta

	#include <iostream.h> 
	#include <iomanip.h>
	
	class cTaulukko {
	  int max_koko;
	  int lkm;
	  int *alkiot;
	public:
	  cTaulukko(int akoko) {
	    max_koko = 0;
	    alkiot = new(nothrow) int[akoko];
	    if ( alkiot ) max_koko = akoko;
	    lkm = 0;
	  }
	  ~cTaulukko() { if ( max_koko ) delete [] alkiot; max_koko = 0; }
	  int lisaa(int luku) {
	    if ( lkm >= max_koko ) return 1;
	    alkiot[lkm] = luku;
	    lkm++;
	    return 0;
	  }
	  void tulosta(ostream &os=cout) const;
	};  // HUOM! Luokasta puuttuu vielä kopionmuodostin ja kopionsijoitus!!!
	
	void cTaulukko::tulosta(ostream &os) const
	{
	  int i;
	  for (i=0; i < lkm; i++)
	    os << setw(5) << alkiot[i];
	  os << endl;
	}
	
	int main(void)
	{
	  cTaulukko luvut(7);
	  luvut.lisaa(0); luvut.lisaa(2);   // Ilo on täällä!!!
	
	  luvut.tulosta();
	
	  return 0;
	}

Edellä olemme käyttäneet muutamia C++:n aikaisemmin käsittelemättömiä ominaisuuksia:


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys