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 :

passage d'une classe à une autre


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut passage d'une classe à une autre
    Bonsoir,

    Alors voilà, malgré les tutos et les cours, j'ai un peu de mal à piger comment passer des variables d'une classe à une autre et comment bien déclarer les objets ( qui a dit "boulet" ? )

    J'ai une classe "Client" où je déclare 4 variables CString ( c'est un projet MFC ) :
    nom
    prenom
    adresse
    numero

    Et je veux les utiliser dans la classe "Enregistre"

    Donc j'imagine que je dois déclarer un objet "Client" dans mon "Enregistre.cpp" genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Client essai;
    essai = new Client;
    Et faire hériter la classe "Enregistre" de la classe "Client" comme ça:

    public Enregistre : public CDialog, public Client

    mais dès que je fais ça, ça me met tout plein d'erreurs comme ça :

    error C2594: 'static_cast' : conversions ambiguës de 'void (__thiscall CGnHrenregistre::* )(void)' en 'AFX_PMSG'

    pour cette ligne ( située dans le BEGIN_MESSAGE_MAP ) :

    ON_BN_CLICKED(IDC_CHER_CLI, OnBnClickedCherCli)

    Est-ce la bonne méthode ?
    Ou que me conseillez-vous ?

    Merci

  2. #2
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Client essai;
    essai = new Client;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Client *essai = new Client;
    Et je veux les utiliser dans la classe "Enregistre"
    En créant une fonction dans Enregistre qui reçoit un pointeur de Client ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void Enregistre::LitClient( Client *cl )
    {
        cl->nom;
        cl->prenom;
        ...
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut
    Alors, j'ai résolu une partie de mon problème.

    Je vous expose la seconde ( non non, je bataille pas comme un abruti lol )
    Toutes mes classes sont publiques

    J'ai une classe "Cpret" et une classe "Cclient".

    J'ai une classe "Cdemande" et une autre "Cenregistre"

    Dans "Cdemande", j'ai déclaré deux objets comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    BOOL Cdemande::OnInitDialog()
    {
    	CDialog::OnInitDialog();
     
    	CGnHrpret pret;
    	pret = new Cpret;
    }
    et ça me renvoie les erreurs :

    error C2582: 'operator =' fonction non disponible dans 'Cpret'
    error C2065: 'pret' : identificateur non déclaré

    Je n'ai pas mis d'héritage. Quand je le fais ( class Cdemande : public CDialog, public Cpret ), ça par en live, encore plus.

    Merci beaucoup de votre aide !

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    On est en C++ ici, pas en Java... new retourne un pointeur vers une instance de l'objet, pas l'instance elle-même.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 43
    Par défaut
    Ba oui, le new c'est ce que mon prof de C++ nous a toujours dit de faire ... c'en est pas ???

  6. #6
    Membre chevronné Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Par défaut
    CGnHrpret pret;
    pret = new Cpret;
    Non, si tu veux créer un pointeur, c'est comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CGnHrpret *pret = new Cpret;

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

Discussions similaires

  1. Passage d'argument d'une classe à une autre
    Par aurelie.guegan.15 dans le forum PyQt
    Réponses: 3
    Dernier message: 04/09/2014, 20h14
  2. C# passage d'objets d'une classe à une autre
    Par pascal4435 dans le forum C#
    Réponses: 10
    Dernier message: 27/02/2013, 15h45
  3. Passage de paramètre d'une classe à une autre
    Par minouche2 dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 23/02/2011, 22h54
  4. passage des variables d'une classe à une autre
    Par zibou7 dans le forum Langage
    Réponses: 4
    Dernier message: 19/02/2007, 16h46
  5. Passage de paramètre d'une classe à une autre
    Par semenzato dans le forum C++
    Réponses: 3
    Dernier message: 21/09/2005, 13h59

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