C++:ssa edällä mainittu dynaaminen taulukko voidaan toteuttaa käyttäjän kannalta todella joustavaksi:
#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: