#include #include using namespace std; class cTaulukko { int max_koko; int lkm; int *alkiot; public: cTaulukko(int akoko) { max_koko = 0; alkiot = new(nothrow) int[akoko]; if ( alkiot != 0 ) max_koko = akoko; lkm = 0; } ~cTaulukko() { if ( max_koko != 0 ) delete [] alkiot; max_koko = 0; } int lisaa(int luku) { if ( lkm >= max_koko ) return 1; alkiot[lkm++] = luku; return 0; } void aseta(int arvo,int i) { alkiot[i] = arvo; } void tulosta(ostream &os=cout) const; cTaulukko(const cTaulukko &kopio) { // kopioi sisältö } void operator=(const cTaulukko &kopio) { if ( this == &kopio ) return; // itseviite, ei tarvits tehdä mitään // tuhoa taulukko // kopioi sisältö } }; // 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(); /* { // Tämä koodi rikkoo jos ei ole copy constuktoria ja sijoitusoperatatoria tehtynä cTaulukko luvut2(luvut); luvut2 = luvut; luvut2.aseta(99,1); luvut2.tulosta(); } */ // luvut = luvut; luvut.tulosta(); return 0; }