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

MFC Discussion :

Probleme d'apel de fonction dans une autre classe


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut Probleme d'apel de fonction dans une autre classe
    Bonjour, je souhaite faire des fonctions de sauvegarde dans différentes classes d'un projet mais j'ai un probleme pour appelé la deuxième fonction. Je m'explique, je suis dans la classe Ligne et je veux apeller a l'intérieur de la fonction de sauvergarde de le classe Ligne la fonction de sauvegarde de la classe CBoucle_Principale:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    void CLigne::sauvegarderXML()
    {
    ofstream fichier("config.xml", ios_base::app);
    fichier<<"<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n";
    fichier<<"<!DOCTYPE config_ligne_dtd SYSTEM \"config_ligne_dtd.dtd\">\n";
    fichier<<"\n";
    fichier<<"<Ligne identification=\"\">\n";
    fichier<<"\n";
    fichier.close();
    CBoucle_Principale::sauvegarderXML();
    }
    
    et la une erreur se produit : "e:\projet vf\simuligne2006\Ligne.cpp(173): error C2352: 'CBoucle_Principale::sauvegarderXML' : appel non conforme d'une fonction membre non static

    Donc voila je pense que c'est l'apel de la fonction qui ne va pas mais je ne sais pas et ne trouve pas comment il faut faire.

    Merci d'avance pour toute aide.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    tu as le droit de faire ça que si
    CBoucle_Principale est la classe parent de CLigne ce qui ne doit pas etre la cas ici .
    donc l'appel est interpreté comme celui d'une fonction statique,
    ce qui ne doit pas etre le cas non plus ....


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut
    Si je fais ça car la classe Boucle_principale hérite de la classe Ligne justement c'est bien sa que tu entends par "CBoucle_Principale est la classe parent de CLigne"
    ?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par freecell31
    Si je fais ça car la classe Boucle_principale hérite de la classe Ligne justement c'est bien sa que tu entends par "CBoucle_Principale est la classe parent de CLigne"
    ?
    ben non c'est l'inverse : pour faire ton appel la classe CLigne doit heriter de CBoucle_Principale et non l'inverse ...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 26
    Par défaut
    Oui mais pour moi c'est la classe Boucle_Principale qui hérite de Ligne donc comment je peux faire?
    merci d'avance

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    en général on fait en sorte que la fonction soit virtuelle (sauvegarderXML)
    et dans la classe heritée on redefinit la fonction en appelant la fonction de la classe de base ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    void CBoucle_Principale::sauvegarderXML( ofstream &rStream)
    {
        CLigne::sauvegarderXML(rStream);
       // sauvegardes complementaires...
    }
    //CLigne *pLigne= new   CBoucle_Principale ;
    ofstream fichier("config.xml", ios_base::app);
    pLigne->sauvegarderXML(fichier);



Discussions similaires

  1. Appel d'une fonction dans une autre classe
    Par Analfabete dans le forum wxPython
    Réponses: 3
    Dernier message: 01/10/2007, 09h45
  2. Réponses: 2
    Dernier message: 22/12/2006, 11h35
  3. Réponses: 3
    Dernier message: 30/11/2006, 06h25
  4. Probleme appel de fct dans une autre classe
    Par crakotte_finance dans le forum C++
    Réponses: 6
    Dernier message: 09/10/2006, 21h22
  5. PHP4 appel d'une fonction dans une autre
    Par cmicdev dans le forum Langage
    Réponses: 6
    Dernier message: 18/05/2006, 11h37

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