Bonjour,
voila j´ai un petit pb en c++, un truc qui doit etre tout bete mais je ne vois pas pourquoi à force d´avoir mon enorme code sous les yeux.
J´ai une classe A, et son constructeur A()
dans une fonction f de A, j´appelle plusieurs fois A() ainsi :
A::f()
{
bla1 = new A();
bla2 = new A();
}
Tout en sachant que bla1 et bla2 sont des pointeurs de A et qu´ils appartiennet à ma classe A.
Je demande donc à créer 2 A sur le tas et à garder leur adresse dans a , par l´intermédiaire de bla1 et bla2(où a est le paramètre implicite de f -> c´est l´objet pointé par this quoi)
Et bien le pb c´est que le premier A se crée très bien et son adresse est bien stocké dans bla1 mais l´appel au 2eme constructeur foire et ne me crée pas l´objet.
Le debuggeur me recupere une first chance exception : 0xC0000005: Access Violation.
Je précise que le prog continue à tourner.
Je ne parviens pas à me rappeller les cas classiques qui peuvent faire qu´un deuxieme appel à un constructeur foire et pas le premier.
note1 : mon constructeur est tout ce qu´il y a de plus classique, avec juste une initialisation à 0 et NULL des variables de A.
note2 : A possede en fait deux constructeur A() et A(param).
Dans mes 2 appels j´utilise A(param).
Est-ce que qq a une idée (meme vague) sur le une explication (meme classique) de ce genre d´erreur ?
(nb : en fait je poste aussi parce que d´expliquer mon pb me permet aussi souvent de resoudre mon truc tout seul, mais si vous avez une idée, je suis preneur aussi
Raah c´est le genre de bug qui m´enervent et qui mettent 3heures à etre résolues pour 2*rien.
Argh, encore merci de votre participation !
enjoy !