Guten Abend liebes Forum,
ich habe ein Problem beim löchen bzw zerstören einer Klasse.
Doch zum Kontext: Ich arbeite an einem kleinen Menu das aus Seiten und diese jeweils aus Elementen bestehen.
Eine "Seite" wird über die Klasse GameMenu erstellt und mit den jeweiligen Elementen Initialisiert:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
void CGameMenu::InitMain()
{
CMenuPage * MainMenu;
MainMenu.InitPage(3);
MainMenu->InitElement(1, "Starten",...);
MainMenu->InitElement(2, "Optionen",...);
MainMenu->InitElement(3, "Beenden",...);
MainMenu->Set_Focus(0);
}
|
Jeh nachdem wie viele Elemente(ein Element ist nichts weiter als ein True Type Font das in ein Bild umgewandelt wird) erstellt werden, wird die größe des Arrays festgelegt:
|
C-/C++-Quelltext
|
1
2
3
4
5
|
void CMenuPage::InitPage(const int New_Elements)
{
iElements = New_Elements;
Elements = new CText[iElements];
}
|
Soo soweit zum Aufbau. Jetzt möchte der Benutzer jedoch das Spiel starten, somit wird die "Seite" MainMenu nicht mehr gebraucht und ich möchte diese dann gerne löschen.
Dies geschieht aus der GameMenu Klasse sobald ein paar Bedingungen erfüllt sind:
|
C-/C++-Quelltext
|
1
2
3
4
|
//if bla bla
{
MainMenu.~CMenuPage();
}
|
Destruktor von MenuPage:
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
|
CMenuPage::~CMenuPage()
{
delete[] Elements;
Elements = NULL;
}
|
So nun erscheint jedoch der Fehler: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse (siehe Anhang)
Im Internet bin ich auf einige Lösungen gestoßen die mich jedoch nicht weitergebracht haben, ich hoffe ihr könnt mir helfen
Liebe Grüße Urprimat.