Hallo,
ich bin grade dabei ein Programm von C auf C++ mit Klassen
umzuschreiben, und hätte gerne mal einen Tip wie man am einfachsten
Speicher für Objekte reserviert bzw. freigibt.
Hier mal meine Klassen:
1 | class Item {
|
2 | private:
|
3 | int nr;
|
4 | int wert;
|
5 | public:
|
6 | Item(int item_number) {nr = item_number;}
|
7 | int getWert() {return wert;}
|
8 | void setWert(int x) {wert = x;}
|
9 | };
|
10 |
|
11 | class Station {
|
12 | private:
|
13 | int anzItems;
|
14 | public:
|
15 | Station() {anzItems = 0;}
|
16 | Item *item;
|
17 | int getAnzahl() {return anzItems;};
|
18 | void AddItem(void) {
|
19 | ++anzItems;
|
20 | item = new Item(anzItems);
|
21 | }
|
22 | };
|
Im Moment wird zwar Speicher für ein Item reserviert, aber noch nicht
freigeben.
Wenn ich die Klassen so ließe, müsste ich ja im Destruktor der Station
mittels einer Schleife die Items löschen.
Lässt sich die Speicherverwaltung auch irgendwie in der Item-Klasse
anlegen (im Kon-/Destruktor?), oder wie macht man sowas am elegantesten?
Auf die Daten würde ich ganz gerne so:
Station sta;
sta.AddItem();
sta.item[0].setWert(123);
zugreifen.
Ich würde mich über einen Hinweis freuen.
Gruß