Programmieren - alles kontrollieren 4.939 Themen, 20.672 Beiträge

variable Menge inform einer Klasse in C++

JeromeB / 5 Antworten / Flachansicht Nickles

Hallo erstmal.


Ich muss für einen Programmentwurf 2 variabel große Mengen in Form von Klassen definieren (in C++).


Leider hab ich keine Idee wie das gehen soll und komme somit zu keinem Ergebnis. Die Sache ist auch recht dringend und ich würde mich sehr sehr freuen wenn sich hier jemand bereiterklären würde mir dabei zu helfen, inform des Quelltextes.


Vielleicht hat ja auch jemand ein Programm in dem er das schonmal gemacht hat.


Vielen vielen Dank an alle Helfer.


Ciao, Jerome.....(Jerome2000@gmx.de)

bei Antwort benachrichtigen
mr.escape JeromeB „variable Menge inform einer Klasse in C++“
Optionen

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.
"The man who trades freedom for security does not deserve nor will he ever receive either." - Benjamin Franklin"Wer seine Freiheit aufgibt, um Sicherheit zu erreichen, wird beides verlieren." - Georg Christoph Lichtenberg
bei Antwort benachrichtigen