dynamic_cast, segmentation fault, constructeur par copie - C++ - Programmation
Marsh Posté le 02-04-2005 à 20:52:03
Taz a écrit : active les RTTI dans ton compilateur (de ******) ? |
Ben je compile avec g++, a priori il ne semble pas y avoir de trucs supplémentaires à activer.
Par exemple sur un truc comme ça ça marche bien :
Code :
|
Marsh Posté le 02-04-2005 à 21:14:37
je vois pas de dynamic_cast là
et ton utilisation de typeid() est exactement l'usage qu'il ne faut pas en faire
Marsh Posté le 02-04-2005 à 21:17:06
et n'oublie pas le destructeur virtuel vu que tu veux pas du polymorphisme. Dans ton cas, je vois pas l'intérêt du dynamic_cast vu que le dispatching est fait par le mécanisme de virtual.
Marsh Posté le 02-04-2005 à 21:32:02
Code :
|
un exemple complet de dynamic_cast.
Marsh Posté le 02-04-2005 à 22:01:42
Merci pour l'exemple
(Pour le dynamic_cast c'est plus pour comprendre pourquoi le truc trouvé sur ce forum crash chez moi que pour mes états )
Marsh Posté le 02-04-2005 à 22:15:10
ton trucs avec tes états à l'air crade comme pas possible. compile en -Wall -std=c++98 -Weffc++ déjà, et ensuite, va falloir apprendre à gérer la mémoire, parce que là ça fuit et ça corromp à tout va
Marsh Posté le 02-04-2005 à 22:42:57
Taz a écrit : ton trucs avec tes états à l'air crade comme pas possible. compile en -Wall -std=c++98 -Weffc++ déjà, et ensuite, va falloir apprendre à gérer la mémoire, parce que là ça fuit et ça corromp à tout va |
Sympa cette option -Weffc++
En effet je ne maitrise pas trop les destructeurs et les fuites mémoires.
Bon 0 erreurs 0 warnings pour "g++ -Wall -Wshadow -W -std=c++98"
4 pages de warnings avec -Weffc++
Bon ben j'y retourne
Marsh Posté le 02-04-2005 à 19:52:05
Bonjour à tous !
Voilà je découvre le c++, et je cherche à modéliser quelque chose de simple du point de vue de la conception objet, mais c'est déjà assez subtil quand on débute (et qu'on a des "habitudes" liées au langage java)
En gros ce que je veux faire :
Ce à quoi j'aspire :
- si je suis dans Depart, que je crée un Arrivee, je veux transmettre des informations, donc je passe par un constructeur par copie.
Etat peut faire : Etat(const Etat& )
Arrivee peut faire : Arrivee(const Etat& )
Et donc moi je renvoie un *(new Arrivee(*this)) depuis la classe Départ
En gros vous en pensez quoi niveau "intégrité des objets ?" Je me demande si je ne suis pas en train de caster comme un grouik dans tous les sens
Autre question ! J'ai trouvé ceci sur un post de fin2004 du forum, au sujet du cast du C qui est à proscrire :
Sauf que pour moi:
avec le cast du C : ca affiche en effet ce que disent les commentaires, donc pas le résultat attendu
avec le dynamic cast : ben moi ca crash
Voilà, si quelqu'un veut bien éclairer ma lanterne
---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.