Pure virtual function call - C++ - Programmation
Marsh Posté le 20-10-2009 à 16:40:34
Ok d'acc.
Du coup, pourquoi ça fonctionne en debug ? Compilo chelou ?
Marsh Posté le 20-10-2009 à 17:08:59
Riot a écrit : Ok d'acc. |
Aucune raison, pour info je viens de tester ton code et avec VC++ 9 ça plante bel et bien en debug (une fois les typos corrigées, et un appel intermédiaire rajouté, car de base ça ne compile pas vu que tu n'es pas censé pouvoir appeler directement une fonction virtuelle pure dans le constructeur).
Accessoirement bonjour à tous (1st post).
Marsh Posté le 20-10-2009 à 17:09:04
J'ai simplifié le bouzin, du coup le compilo le voit pas.
edit : dans mon code en fait, Base lance un thread qui appelle doSmth().
Marsh Posté le 20-10-2009 à 17:37:34
Ouille, tu as introduit une course entre la construction de l'objet et l'appel a son membre...
Marsh Posté le 22-10-2009 à 00:39:21
Bin l'objo se construit pendant que le thread s'éxécute.
le moindre aléa multitâche et le thread appelle doSmth() avec l'objet construit ou pas.
Marsh Posté le 20-10-2009 à 16:22:06
Hello,
J'ai un message "pure virtual function call" de MSVC 7.1 en release, alors qu'en debug ça ne le fait pas (même que le code fonctionne correctement)...
Voici le code fautif simplifié :
Je vois pas trop pourquoi ça plante... Une idée ?
---------------
Be the one with the flames.