IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

passer un objet dérivé a un objet parent


Sujet :

C++

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut passer un objet dérivé a un objet parent
    Bonjour,

    parallelepipede et sphere héritent de la classe Objet3D
    que dois je faire pour ne plus avoir ces erreurs à la compilation et pourquoi les ai-je ?

    error C2440: '=' : cannot convert from 'parallelepipede *__w64 ' to 'Objet3D ** '
    error C2440: '=' : cannot convert from 'Sphere *__w64 ' to 'Objet3D ** '


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    srand( (unsigned)time( NULL ) );
    	Objet3D *pObj[10];
    	int valeurRandom ;
    	for(int i = 0 ; i <10 ; i++)
    	{
    		valeurRandom = rand()%2 ;
    		if (valeurRandom == 0)
    		{		
    			Sphere s(d, "bois", 0) ;
    			pObj+i= &s ;
    		}
    		else
    		{
    			parallelepipede p(0, 0, 0, d, "bois") ;
    			pObj+i= &p ;
    		}
    		cout<<"adresse "<<pObj+i<<endl ;
    	}

  2. #2
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    ca ne serait pas un tableau d'objets 3D que tu veux plutot ?

    an lieu de essaye sinon, il faut que tu affecte comme ca :

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    il me faut un tableau de 10 pointeurs vers des objet3D

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    j'ai essayé :

    mais ça plante à l'execution

  5. #5
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par airseb
    j'ai essayé :

    mais ça plante à l'execution
    normalement, c'est la meme chose, mais essaye quand meme, tu m'as embrouillé avec tes manipulations de pointeurs.
    ps: il dit quoi quand il plante ? si tu ne donnes pas un minimum d'info, on ne va pas pvoir etre d'une grande aide...

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    j'ai mis tout ce qui est relatif aux pointeurs (déclaration et autres) en commentaires et ça plante toujours. A ce moment là ça m'affiche :

    Unhandled exception at 0x7c911230 in Tp 2.exe: User breakpoint

    et ça m'ouvre un fichier de code "bizarre" qui n'est pas a moi.

  7. #7
    Membre confirmé Avatar de toxcct
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    434
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 434
    Points : 511
    Points
    511
    Par défaut
    Citation Envoyé par airseb
    j'ai mis tout ce qui est relatif aux pointeurs (déclaration et autres) en commentaires et ça plante toujours. A ce moment là ça m'affiche :

    Unhandled exception at 0x7c911230 in Tp 2.exe: User breakpoint

    et ça m'ouvre un fichier de code "bizarre" qui n'est pas a moi.
    au risque de me répéter : Je ne suis pas devin.

    quel est le fichier qu'il t'a ouvert ?
    quel est ton environnement de developpement? compilateur ?
    as tu essayé d'utiliser le débugger pour controler l'etat de tes variables ??
    as tu vérifié que tu n'as pas un dépassement de capacité de ton tableau ?
    as tu essayé d'utiliser un std::vector<Objet3D*>(10) ?

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    ok sorry,
    le fichier c "xlocnum"
    le compilo c visual C++ 2003
    pour le reste j'essai ça et je vous dis

  9. #9
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Tu te rends compte j'espère que tu as dans ton tableau des pointeurs vers des éléments qui n'existent plus ?

    Voici comment tu peux faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    	boost::ptr_vector<Objet3D> pObj(10);
    	int valeurRandom ;
    	for(int i = 0 ; i <10 ; i++)
    	{
    		valeurRandom = rand()%2 ;
    		if (valeurRandom == 0)
    		{		
    			pObj[i] = new Sphere(d, "bois", 0);
    		}
    		else
    		{
    			pObj[i] = new parallelepipede(0, 0, 0, d, "bois");
    		}
    		cout<<"adresse "<<pObj[i]<<endl ;
    	}
    Tu peux aussi faire un vector de boost.variant, qui sera plus performant mais qui ne fonctionnera qu'avec une liste prédéterminée de sous classes de Objet3D.

  10. #10
    Membre à l'essai
    Inscrit en
    Août 2003
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 33
    Points : 19
    Points
    19
    Par défaut
    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. passer des info (une liste d'objets) de page en page
    Par andtwoturtles dans le forum Django
    Réponses: 3
    Dernier message: 13/03/2010, 19h04
  2. Passer d'un objet Reader a un objet Inputstream
    Par Edta dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2009, 17h28
  3. Objets dérivé de std::ostream et manipulateur
    Par Sub dans le forum SL & STL
    Réponses: 2
    Dernier message: 03/10/2007, 06h26
  4. Réponses: 17
    Dernier message: 24/11/2006, 18h25
  5. Réponses: 6
    Dernier message: 09/05/2006, 23h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo