CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Erreur c++] Pure virtual method called

Dharxy
Dharxy
Niveau 6
11 juillet 2013 à 21:04:00

Salut à tous,
J'ai rencontré aujourd'hui une erreur que je n'avais jamais vu avant je vous la d'écrit :
Je suis entrain de créer un shoot them up depuis hier, j'ai donc ajouté une entité joueur qui peut tiré des laser vers le haut.
Lorsque je tire une première fois tout va bien, mais lorsque je tir mon deuxième missile le jeux crash et un message s'affiche dans la console disant : "pure virtual method called terminate called without an active exception".
J'ai déjà fait quelques recherches sur google mais rien de concluant ou qui n'aurait pu m'aider.
Je suis presque certain que le problème vient d'un pointeur nommé m_sprite que je promène un peu partout (ce qui a du causé l'erreur) merci a ceux qui m'aideront à mis retrouvé ! :-)

Fichiers concerné :
EntityPlayer.cpp http://pastebin.com/2X4rdXGj
EntityPlayer.h http://pastebin.com/rgakcPc6
Entity.cpp http://pastebin.com/07UJ7ACJ
Entity.h http://pastebin.com/6xziFwjF
EntityBullet.cpp http://pastebin.com/uAVgfDXG
EntityBullet.h http://pastebin.com/sJwqTBv8

Dharxy
Dharxy
Niveau 6
11 juillet 2013 à 21:13:36

Moui, mais laquelle ?
Je vien d'essayer de changer le nom de l'un des methode shoot pour savoir si il n'y avait pas de confusion sur ce point, mais non.
Et normalement cette erreur m'aurait donné un erreur au compilateur non ?

webpsi
webpsi
Niveau 9
12 juillet 2013 à 12:20:28

"Et normalement cette erreur m'aurait donné un erreur au compilateur non ?"
Non, mais ça va te donner une erreur en mode debug (et c'est là que tu verra la fonction qui bloque)

stern7474
stern7474
Niveau 10
12 juillet 2013 à 15:43:06

Fais gaffe de bien mettre des destructeurs en virtuels.

Arf, je déteste qu'on fasse des attributs privées pour ensuite générer getter et setter publics, ça sert à rien, autant mettre les attributs en public dans ce cas, ça revient au même et ça évite de remplir le fichier de fonctions inutiles. Si encore tu faisais un test sur les setters mais là non ... Je sais ce qu'on va me dire, que c'est la convention mais là en l’occurrence la convention est vraiment nulle.

Tu n'as pas de destructeur pour EntityPlayer, je pense que ça peut venir de ça ...

LEpigeon-888
LEpigeon-888
Niveau 12
12 juillet 2013 à 16:01:06

"mais là en l’occurrence la convention est vraiment nulle."

Bof, si à un moment t'as besoin justement de faire une vérification au setter et que t'es bien avancé dans le code, ça t'évite de changer tout plein de trucs, et croit-moi c'est bien moins chiant de faire des getter et des setter quand on ajoute une variable que de le faire plus tard quand la variable est utilisé plein de fois dans le code et que ça met trois plombes à tout changer :hap:

Pis c'est pratique aussi pour le debug quand on a des problèmes :oui:

stern7474
stern7474
Niveau 10
12 juillet 2013 à 16:03:40

LEpigeon-888 -> Ca dépend du contexte aussi, ici il risque pas de faire de vérification sur ses attributs dans la classe Entity ...

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment