Objekt vernichten
-
Hi, das thema hört sich zwar net gut an,
aber wie kann ich ein objekt wieder vernichten, ohne das Prog zu beenden.
Also so was wie ein destruktor, denn man aufrufen kann, ind das objekt ist gelöscht??
-
den dtor ruft man eigentlich nie explizit auf.
Ein Objekt wird zerstört, wenn du den Scope verlässt, in dem du das Objekt angelegt hast oder den Speicher löschst, in dem das Objekt abgelegt wurde.
-
CObjekt * NeuesObjekt = new CObjekt; // .. Code zur Bearbeitung if (NeuesObjekt) { delete NeuesObjekt; }
-
die if Abfrage ist übrigens Sinnlos, da
delete NULL;
laut Standard legal ist
-
Also geht das mit "delete objekt"
Danke
-
nur wenn du es mit new angelegt hast
-
hab es gemerkt, also ich hab ein objekte array angelegt
schiff fleet[3]
schreibe ein schiffe versenken, da hab ich jetzt meine drei schiffe
fleet[0...2]So und jetzt wollte ich, wenn ein schiff gesunken ist das schiff objekt löschen.
Geht das irgendwie??
-
Mach sowas doch mit einem vector aus der STL!
-
Die Stelle an der das Schiff versunken ist, wird doch normal weiterhin markiert
und es verschwindet nicht plötzlich, daher würde ich einfach im Objekt ein Flag
setzen, dass es gesunken ist und fortan anderst gezeichnet wird.
-
Ein gesunkenes Schiff ist zwar gesunken, aber das Objekt ist nicht zerstört.
Ich würde das Objekt nur auf einen zustand 'destroyed' oder ähnliches setzen.
-
Das habe ich ja, aber ich frag die nach jedem Schuß ab, und wenn ein einziges gesunken ist dann findet er es immer wieder.
if(getroffen) { printf("Treffer"); //Treffer anzeige for(int k=0;k<=2;k++) { //Status der Schiffe if(!fleet[k].getstatus()) { gotoxy(30,10); ships_com--; if(ships_com<=0){ versenkt_com=true; clean(1,1,6); gotoxy(30,9); printf("!!!!Sie haben Gewonnen!!!!"); gotoxy(30,11); printf("!!!!Mit %d Schuessen!!!!",shoots); Sleep(1000); } else printf("Sie haben ein Schiff zerst\224rt"); } }; }
jetzt wird es vileicht klarer, wenn nur ein schiff den status=false hat, findet er es nach jedem schuss wieder, deswegen wollte ich das objekt dann löschen