Auch wenn die fragestellung sehr unscharf ist, könnte evtl. so etwas gemeint sein:
class MyClass {
int n, *speicher;//anzahl der möglichen einträge und adresse des speichers
public:
MyClass(){speicher=NULL;n=0;}
MyClass(int count){speicher=new int[n=count];}//hier noch fehler behandeln
~MyClass(){if(speicher) delete[] speicher;}
int Read(int i){if(speicher && i>=0 && i<n) return speicher[i]; else return 0;}
void Write(int i, int v){if(speicher && i>=0 && i<n) speicher[i]=v;}//evtl. alten wert zurückgeben
void Alloc(int count){if(speicher) delete[] speicher;speicher=new int[n=count];}//fehlerbehandlung fehlt
int Count(){return n;}
//etc.
};
mit dieser klasse kann man beliebige mengen an gleichartigen daten speichern (hier z.b. int).
Aufruf mit
MyClass var1;//kein speicher allokiert
MyClass var2(100);//speicher für 100 int allokiert
var1.Alloc(100);//speicher für 100 int nachträglich allokiert, vorherigen speicher freigegeben
var1.Write(0, 100);
int i=var1.Read(0);//gibt den ersten wert aus dem speicherblock zurück (hier 100), undefiniert wenn noch unbeschrieben oder 0 wenn unzulässig (kein speicher vorhanden oder ausserhalb der grenzen)
Wird die variable ungültig, wird der speicher automatisch freigegeben.
Hier fehlen noch einige methoden und auch die fehlerbehandlung muss noch besser werden aber das ist eine andere baustelle.
mr.escape
ps.: falls es semikolonmangel gibt, nach geschmack setzen.