#include #include using namespace std; class cLuku { int arvo; public: cLuku(int arvo=0) { this->arvo = arvo; } int get() const { return arvo; } friend ostream &operator<< (ostream &os, const cLuku &luku); }; ostream &operator<< (ostream &os, const cLuku &luku) // Inserter { os << luku.arvo; return os; } temlate class class cTaulukko { int max_koko; int lkm; TYPE *alkiot; public: cTaulukko(int akoko) { max_koko = 0; alkiot = new(nothrow) TYPE[akoko]; if ( alkiot ) max_koko = akoko; lkm = 0; } ~cTaulukko() { if ( max_koko ) delete [] alkiot; max_koko = 0; } int lisaa(const TYPE &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(cLuku(0)); luvut.lisaa(cLuku(2)); // Ilo on täällä!!! luvut.tulosta(); return 0; }