Hey ik ben bezig aan het schrijven van mijn engine en ik heb een klein probleem.
Ik heb een klasse GameLoader waarin een 'new Image(..) wordt aangemaakt, en de pointer die naar het object verwijst geef ik door in de return van die methode.
Dus in mijn GameLoader hoe ik geen pointers bij die naar objecten verwijzen. Dus ik moet mijn objecten deleten in mijn game zelf.. Ik wou dit als volgt doen:
Maar die bool geeft een true terug
Dan probeerde ik dit eens:
De eerste bool na "delete m_pImage; geeft een true. Dan wil ik heb releasen en bij de "delete this" crash hij.
What is going on here? Hoe krijg ik deftig mijn object weg waar mijn pointer naar verwijst?
EDIT:
Even wat staan uittesten.. Als ik de bool verander naar false zegt hij wel dat het niet meer 'bestaat'
Waarom kan ik nog steeds mijn bool m_bExists veranderen terwijl het object al lang gedealloceert moest zijn?
B. Jonathan
Ik heb een klasse GameLoader waarin een 'new Image(..) wordt aangemaakt, en de pointer die naar het object verwijst geef ik door in de return van die methode.
Dus in mijn GameLoader hoe ik geen pointers bij die naar objecten verwijzen. Dus ik moet mijn objecten deleten in mijn game zelf.. Ik wou dit als volgt doen:
Code:
Game::~Game()
{
m_pImage->Release();
}
void Image::Release()
{
delete this;
bool stillexists = this->Exists();
}
Maar die bool geeft een true terug
Dan probeerde ik dit eens:
Code:
Game::~Game()
{
delete m_pImage;
bool stillexists = m_pImage->Exists();
m_pImage->Release();
}
void Image::Release()
{
delete this;
bool stillExist = this->Exists();
}
De eerste bool na "delete m_pImage; geeft een true. Dan wil ik heb releasen en bij de "delete this" crash hij.
What is going on here? Hoe krijg ik deftig mijn object weg waar mijn pointer naar verwijst?
EDIT:
Even wat staan uittesten.. Als ik de bool verander naar false zegt hij wel dat het niet meer 'bestaat'
Code:
void Image::Release()
{
delete this;
m_bExists = false;
}
Game::~Game()
{
m_pImage->Release();
bool stillexist = m_pImage->Exists(); // lukt nog steeds maar nu geeft het false terug
}
Waarom kan ik nog steeds mijn bool m_bExists veranderen terwijl het object al lang gedealloceert moest zijn?
B. Jonathan
Laatst bewerkt: