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 :

[Débutant] Déclaration d'un objet dans une autre classe


Sujet :

C++

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut [Débutant] Déclaration d'un objet dans une autre classe
    Bonjour,

    j'ai une petite question qui va vous paraitre banale...
    mais je n'arrive pas à trouver si c'est possible de:

    déclarer un objet dans le header d'une autre classe pour pouvoir avoir ce meme object accessible en globale tout au long de cette classe...?

    j'espere mettre fait comprendre mais c'est pas facile à décrire

    Merci d'avance pour votre aide...

  2. #2
    Membre du Club Avatar de trecks
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Oui bien sur il n'y a aucun problème la dessus enfin il me semble, moi j'ai déjà eu recours à cette méthode et je n'ai jamais rencontré de problème tout en respectant le principe de l'encapsulation bien sûr : prudence est mère de sûreté ^^

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    je dois mal déclaré cela parce que le compilateur me dit que l'object que je veux declarer n'est pas un type

    quel serait la syntaxe?

    Merci...

  4. #4
    Membre du Club Avatar de trecks
    Étudiant
    Inscrit en
    Janvier 2007
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2007
    Messages : 91
    Points : 58
    Points
    58
    Par défaut
    Voici un petit exemple :

    Objet1.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #include <iostream>
     
    class Objet1
    {
    public:
         Objet1();
         ~Objet1();
    };
    Objet2.h
    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 <iostream>
    #include "Objet1.h"
     
    class Objet2
    {
    public:
         Objet2();
         ~Objet2()
         Objet1 GetObjet1()const {return m_MonObjet1;}
     
    private:
         Objet1 m_MonObjet1;
    };
    Voila normalement tout devrait fonctionner

  5. #5
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    j'ai pris model sur ton exemple mais ça n'est pas passé...

    voici ce que j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    /opt/Qtopia_X11/include/QtCore/qobject.h: In copy constructor «QThread::QThread(const QThread&)":
    /opt/Qtopia_X11/include/QtCore/qobject.h:277: erreur: «QObject::QObject(const QObject&)" is private
    /opt/Qtopia_X11/include/QtCore/qthread.h:40: erreur: à l'intérieur du contexte
    ./sip_thread_appel.h: In copy constructor «Appel_thread::Appel_thread(const Appel_thread&)":
    ./sip_thread_appel.h:13: note: synthesized method «QThread::QThread(const QThread&)" first required here 
    ./AltranPhone.h: In member function «Appel_thread AltranPhone::GetAppel_thread() const":
    ./AltranPhone.h:34: note: synthesized method «Appel_thread::Appel_thread(const Appel_thread&)" first required here 
    make[1]: *** [AltranPhone.o] Erreur 1
    make[1]: quittant le répertoire « /home/dev/workspace/SIP_qtopia_thread »
    make: *** [qtopia_build] Erreur 2
    la je ne vois pas du tout pourquoi il me raconte tout ça

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Points : 1 069
    Points
    1 069
    Par défaut
    En fait ce n'est pas le même problème...

    Dans ta méthode, Appel_thread::Appel_thread(const Appel_thread&), tu dois faire appel à un constructeur de copie, implicitement ou non. Or, le concepteur de Qtopia_X11 interdit l'appel à ce constructeur de copie.
    QObject::QObject(const QObject&)" is private
    Il doit y avoir une raison (vu que c'est des threads, il n'y a rien d'étonnant) mais tu dois faire autrement. Peut-être avec un pointeur...

    EDIT:
    Extrait de http://www.developpez.net/forums/sho...60&postcount=8
    Les objets dérivés de QObject sont des objets à sémentique d'entité, et non de valeur. Il est classique dans ces cas là que les objets soient non copiables, et destinés à être gérés pas des pointeurs.

  7. #7
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2005
    Messages : 12
    Points : 5
    Points
    5
    Par défaut
    a ok d'accord...

    je vais plancher vers cette solution des pointeurs!

    Merci vous 2 pour votre aide

Discussions similaires

  1. [débutant]Instancier une classe dans une autre classe
    Par g_tarik0010 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 28/10/2008, 11h05
  2. Réponses: 1
    Dernier message: 16/08/2007, 18h34
  3. rappeler un objet dans une autre méthode
    Par yodark dans le forum Langage
    Réponses: 2
    Dernier message: 17/01/2007, 22h08
  4. Réponses: 2
    Dernier message: 22/12/2006, 11h35
  5. Réponses: 1
    Dernier message: 05/05/2006, 14h37

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