Ok well in my game I have created a class Critter, then a called
Critter* Mobs;
Mobs = new Critter[MAXMONSTERS]; // MAXMONSTERS = 5 for now
then I have where I fight some monster which the code always goes through
Mobs[I] to fight with but when I win im not sure how I remove that monster.
I tried Mobs[I].delete but gives me a error. some help would be great.
1 2 3 4 5 6 7 8 9 10 11
Critter* Mobs;
Mobs = new Critter[MAXMONSTERS];
// some function to attack
for(I = 0, I < MAXMONSTERS; ++I)
//then if Mobs[I].hps < 1
cout << "u have killed the monster";
this is where I need to delete that mob
man its ARRAY.......
though dynamically allotted.........
its single element cant be OUT of SCOPE at a time.
.
so Mobs[I] wouldn't be deleted.......alone ,whenever out of scope........
for deletion inside ~Critter () { delete []Mobs; } //will delete whole Mobs..
and soln=
use shifting to bring Mobs[I] to Mobs[0]
store its addrs. in temp ptr and use Mobs++;
U r done......but now delete that using temp ptr...........
.
.
.
.
.by the way.....let me see ur game.........#interested....hope would be nice.......
im not sure, im just using the basic
Critter::~Critter() {}
Since the destructor is empty, that did nothing. You don't normally explicity call a destructor. The compiler generates a call to a destructor when an instance is deleted either via delete or when it goes out of scope.
so where did it go when I called that?
Nowhere. You didn't delete it.
or did it just cleared all the information in that Mobs[I]?
well something has happened for me as when I called the destructor when I kill a Mob. I no longer see them. I have a map with 4 rooms(text based game) so when I goto room 1 and the Mobs room is the same then I see them. They can move around the rooms(works now without them getting lost), they can only move once every like 5 secs, if I attack them they cant move. I can attack them and kill them all(only 5). After I can move to all the 4 rooms and there is nothing in either.
so any ideas what happened to them?
did a little testing and it looks like the destructor has zero'd all the info in that Mob.