#include #include using namespace std; class cLuku { int arvo; public: cLuku(int arvo=0) { this->arvo = arvo; } int get() const { return arvo; } }; ostream &operator<< (ostream &os, const cLuku &luku) // Inserter { os << luku.get(); return os; } template 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!!! template void cTaulukko::tulosta(ostream &os) const { int i; for (i=0; i < lkm; i++) os << setw(5) << alkiot[i]; os << endl; } int main(void) { #if 1 cTaulukko luvut(7); luvut.lisaa(0); luvut.lisaa(2); // Ilo on täällä!!! luvut.tulosta(); #endif cTaulukko jonot(7); jonot.lisaa("kissa"); jonot.lisaa("kana"); jonot.tulosta(); return 0; }