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 :

[debutant]appeller une fonction d'une classe fille et mere ?


Sujet :

C++

  1. #1
    Battosaiii
    Invité(e)
    Par défaut [debutant]appeller une fonction d'une classe fille et mere ?
    voila j'ai encore un probleme .

    Dasn mon main j'ai voulu executer 2 focntions de deux classes ( l'une est la fille de l'autres.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    temps a= temps();
    temps *ptra=&a;
    temps b= sky();
    temps *ptrb=&b;
    ptra->weather();
    ptrb->weather();
     cout <<"??"<<endl;
    Le probleme c'est lorsque je compile a l'affichage j'ai la meme chose pour ptra->weather(); et ptrb->weather();


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    #include"temps.h"
    using namespace std;
     
    void temps::weather() 
    {
    if(nice)
    {
    	cout <<"tommorow the weather will be nice "<<endl;
    }
    else cout<<" tommorow the weather will be bad "<< endl; 
     
    }
    Voila le code du pere

    Ensuite la fille (ou le fils ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #include"sky.h"
    using namespace std;
     
    void sky::weather()
    {
    //temps::weather(nice);
    cout <<"sky color is"<<color<<endl;
    }
     
    sky::sky() 
    {
    color="blue";
    }
    sky a pourtant une fonction differente de temps ... je rappelle que dans le .h respectif j'ai intitule la fonction :
    virtual void weather();

    Donc je comprends pas ! Il y a pas d'erreur de compilation ni de warmning ...

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    tu n'inscancies pas correctement tes objets:
    Là, tu crées a de type temps, puis tu fais a=temps() : tu affectes l'objet temps a (un objet existant, pas une référence ni un pointeur) avec l'objet temps anonyme que tu crées.

    Pareil pour b: tu crées un objet b de type temps, puis tu fais b=sky(): tu affectes l'objet temps b (un objet existant, pas une référence ni un pointeur) avec l'objet sky anonyme que tu crées.

    Si tu veux que ça marche,
    Soit tu fais directement "temps a; sky b;" soit "temps *pa = new temps(), *pb = new sky();"

Discussions similaires

  1. Appel d'une fonction dans une fonction d'une même classe
    Par script73 dans le forum Général Python
    Réponses: 3
    Dernier message: 06/03/2015, 10h18
  2. [Debutant] changer des images dans une div par une fonction javascript
    Par raul_le_vieux dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2007, 09h35
  3. Appeler une fonction dans une fonction
    Par bryanstaubin dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 18/06/2007, 09h39
  4. Réponses: 9
    Dernier message: 15/02/2007, 11h02
  5. Réponses: 3
    Dernier message: 29/04/2006, 13h02

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