begin process at 2010 02 10 09:59:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Probleme de fonctions vurtuelles


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Probleme de fonctions vurtuelles

dimanche 5 mars 2006 à 01:46:09 | Probleme de fonctions vurtuelles

troukatruc

Bonjour,
Voici mon problème:
j'ai une classe FormGeo et une classe Cercle qui hérite de ForGeo.

[code]
class FormGeo
{
public:
   
    FormGeo();
    ~FormGeo();
    virtual Display();   
};

class Cercle : public FormGeo
{
protected:
    char *nom;
    float rayon;
    Point2d centre;
public:   
    Cercle();
    Cercle(Point2d,float);
    float Getrayon();
    Point2d Getcentre();
    Translater(Point2d);
    Setrayon(float);
    Setcentre(Point2d);
    Display();
};
[\code]


ensuite je crée un tableau de FormGeo pour y instancié des cercle.
[code]
FormGeo *list_form=new FormGeo[BUFFER_SIZE];
[\code]

ensuite j'ajoute donc mes cercle
[code]
tmp_cercle=Cercle(tmp_p,tmp_rayon);
 list_geo[pos+1]=tmp_cercle;
[\code]

Cependant si aprés j'utilise ma fonction Display()
 list_geo[pos+1].Display();
il utilise la fonction display de FormGeo et non pas de Cercle

Voila j'espere que qqn pourra me repondre rapidement merci!!!
dimanche 5 mars 2006 à 01:58:14 | Re : Probleme de fonctions vurtuelles

Guillemouze

essaye ca :

class FormGeo
{
public:
   
    FormGeo();
    ~FormGeo();
    virtual Display()=0  
};

dimanche 5 mars 2006 à 02:16:19 | Re : Probleme de fonctions vurtuelles

troukatruc

Et bien j'avais deja essayer comme ca mais lorsque je compile j'ai l'eereur suivante :

C:\Documents and Settings\Administrateur\Mes documents\projet\test\test.cpp(12) : error C2259: 'FormGeo' : cannot instantiate abstract class due to following members:
C:\Documents and Settings\Administrateur\Mes documents\projet\test\test.cpp(12) : warning C4259: 'int __thiscall FormGeo::Display(void)' : pure virtual function was not defined

dimanche 5 mars 2006 à 02:24:32 | Re : Probleme de fonctions vurtuelles

Guillemouze

tu a pas oublie de mettre un "void" devant ta fonction display (dans FormGeo et Cercle)?
et elle est bien redeclarée dans ta classe Cercle
dimanche 5 mars 2006 à 02:32:17 | Re : Probleme de fonctions vurtuelles

troukatruc

non je n'avais pas mis void devant les fonction mais de toute facon ca change rien.
et oui elle est bien declarer dans la classe cercle.
dimanche 5 mars 2006 à 02:41:14 | Re : Probleme de fonctions vurtuelles

troukatruc

Sinon en faite j'ai un autre probleme.
Au debut j'étais parti non pas avec un tableau de FomGeo mais avec une liste chainé.

donc je créé un nouveau maillon qui contient l'adresse d'une formgeo. je crée ma FormGeo jajoute son adresse etc..
donc tout ca dans une méthode d'une autre classe. mais quand je revien dans le cpp principal la formgeo que j'ai créé n'existe plus.
Et je ne vois pas ou est le probleme:
dimanche 5 mars 2006 à 02:45:15 | Re : Probleme de fonctions vurtuelles

Guillemouze

tu as bien declare ta formgeo en pointeur? paske sinon c normal qu'elle disparaisse.
Sinon c peut etre un probleme de chainage ou de pointeur. si tu modifie un pointeur, il faut bien modifier l'adresse du pointeur et pas le pointeur lui meme.

fais voire les fonctions et les appels qui correspondent...
dimanche 5 mars 2006 à 03:01:22 | Re : Probleme de fonctions vurtuelles

troukatruc

voila les classe:

class Maillon
{
protected:
    Maillon *pt_grp_suiv;
    Maillon *pt_grp_prec;
    Maillon *pt_suiv;
    Maillon *pt_prec;
    FormGeo *pt_figure;

public:
   
    Maillon();
    Maillon(FormGeo*);
    Add_fig(FormGeo*);
    Add_suiv(Maillon*);
    Add_prec(Maillon*);
    Add_Grp_suiv(Maillon*);
    Add_Grp_prec(Maillon*);
    Maillon* Get_pt_suiv();
    Maillon* Get_pt_prec();
    Maillon* Get_pt_Grp_suiv();
    Maillon* Get_pt_Grp_prec();

    Maillon* Get_last();
    Maillon* Get_Grp_last();


    FormGeo* Get_figure();
    Display(Maillon *);
    DisplayGrp();

};

class Console
{
protected:
    int taille;
    char** commande;

public:
    Console();
    Diplay();
    AjoutCommande(char*);
    ExecCommande(Maillon *);

    int Commande_creer(Maillon*);

    Commande_supp();
};




ensuite la fonction:
int Console::Commande_creer(Maillon* mon_maillon)
{
    int choix=0;
    bool test=false;
    //Maillon* tmp_maillon=&Maillon();
    Maillon* tmp_maillon=mon_maillon;
    char* tmp_nom;
    char* tmp_abs;
    char* tmp_ord;
    float tmp_rayon;
    Cercle tmp_cercle;
    Point2d tmp_p=Point2d();
    unsigned int i,j;


 (j'ai virer le traitement de la commande)



        if(tmp_maillon->Get_pt_suiv()!=NULL)
        {
            tmp_maillon=tmp_maillon->Get_last();
        }
        tmp_maillon->Add_suiv(&Maillon());
        tmp_maillon=tmp_maillon->Get_pt_suiv();
        tmp_cercle=Cercle(tmp_p, tmp_rayon);
        tmp_maillon->Add_fig(&tmp_cercle);
        tmp_maillon->Get_figure()->SetName(commande[2]);
        break;
    case 2:
        break;
    default:
        break;
    }
    return(0);
}


et enfin le cpp principal

int BUFFER_SIZE=1024;
    char *commande=new char[BUFFER_SIZE];
    Console cons=Console();
    Maillon *root=&Maillon();

    while(strcmp(commande,"quit")!=0)
    {
        delete[] commande;
        commande=new char[BUFFER_SIZE];
        cout<<"Entre ta commande:";
        cin.getline(commande, BUFFER_SIZE, '\n');
        if(strcmp(commande,"\n")!=0)
        {
            cons.AjoutCommande(commande);
                cons.ExecCommande(root);
          
        }
    }
    return 0;
}

Et donc le probleme c'est que juste apres l'execution du cons.execcommande j'arrive a recupéré et afficher la figure que je vien de créé cependant kan je retourne au debut du while la figure n'existe plus.
le pointeur pointe toujours a la meme adresse mais si je veu afficher des info, j'ai une erreur memoire ..
donc pourquoi ma figure n'est plus la...
dimanche 5 mars 2006 à 03:10:50 | Re : Probleme de fonctions vurtuelles

troukatruc

je rectifie une chose en faite aprés la fonction execcommande l'adresse du suivant est bien la bonne mais la figure n'existe plus.
surement un probleme de porté de variable mais je ne vois pas comme contourner le probleme...
dimanche 5 mars 2006 à 03:13:43 | Re : Probleme de fonctions vurtuelles

Guillemouze

ta essaye de mettre
Maillon *root= new Maillon();
a la place de
Maillon *root=&Maillon();
?

1 2

Cette discussion est classée dans : code, display, cercle, formgeo, point2d


Répondre à ce message

Sujets en rapport avec ce message

Demande de tutorial et de code source... [ par MaTHieU ] Salut,Tout d'abord, merci pour ce superbe site !Je cherche des cours pour apprendre à faire des tunnel et du plasma en Visual C++ ou des codes sources imprimer et image en c++ [ par naney ] je voudre un code source qui me montre comment imprimer et un autre qui me montre comment inserais une image en c++ (n'importe quel format d'image) ex Aide pour mega debutant [ par C++ ] Salut, bon alors je vien d ouvrir c++ mais comment mettre un code sur un boutton ???par exemple ce code comment je doits le mettre sur un bouton :int code source de la visionneuse microsoft en C++ [ par tompouce ] j' ai un projet à faire en C++ et je n'y connaît strictement rien AU SECOURS!!Jai fait une fenetre avec un simple menu Fichier** Ouvrir** QuitterQuand Recherche code source de notepad... [ par PierreP ] ou de tout autre éditeur de texte assez simple.Merci d'avance ! Fenetre [ par c++ ] salut, je voudrais savoir le code pour creer une fenetre toute simple rien que le code de la fenetre c tout svp! Pb code source CMphSock [ par xaviou ] Salut.J'ai téléchargé le projet "CMphSock" : Utilisation de Winsock sans MFC.Je l'ai compilé en mode Debug : tout est OKJ'ai essayé en mode Release : (Hors Sujet) Petit coup de gueule [ par Jo ] Bonjour,Deajs je voudrai m'excuser d'utiliser le forum pour faire passer ce petit message, qui n'a rien a voir avec une demande d'aide ou de conseil d Salut, je voudrai savoir si qql'un peut me faire un petit code source sur ... [ par Uncle-Shu ] En faites je voudrai creer une application dans le style de VB (Fichier, Edition,...) !!Merci d'avance et bonne chance !! tutorial ou code GLUT [ par francky ] SALUT,je débute avec dev c, et j'aimerais créer une interface portable aussi bien sous window que sous linux;mon probleme: j'ai bien trouver glui, mai


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales