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++Builder Discussion :

Surcharger un constructeur de classe


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut Surcharger un constructeur de classe
    Bonjour à tous,
    je me doute que ça doit être une question "basique", mais je n'ai rien trouvé de très clair (pour un débutant) dans la faq ou le forum.
    Alors voilà:

    je voudrais créer un thread en lui passant quelques paramètres pour l'initialiser.

    Dans le .h, j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class TGThread : public TThread
    {
    private:
    protected:
            void __fastcall Execute();
    public:
            __fastcall TGThread(bool CreateSuspended);
    };
    Dans le .cpp:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    __fastcall TGThread::TGThread(bool CreateSuspended)
            : TThread(CreateSuspended)
    {
    }
    Comment dois-je modifier ce code pour passer au thread deux paramètres int A et int B au moment de sa creation par le thread principal?



    Merci d'avance,

    Robert.

  2. #2
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    il te suffit de créer un constructeur avec tes deux paramètres, de faire tes initialisation dedans et d'appeler ensuite le constructeur par défaut dans celui-ci

    .H
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    class TGThread : public TThread
    {
    private:
    protected:
            void __fastcall Execute();
    public:
            __fastcall TGThread(bool CreateSuspended, int A, int B);
    };
    .CPP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    __fastcall TGThread::TGThread(bool CreateSuspended, int A, int B)
            : TThread(CreateSuspended)
    {
         // Tu réalise l'initialisation avec tes variables A et B
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    Merci Kurul1,
    en fait en C++Builder, on peut modifier carrément la déclaration du constructeur sans mention particulière si je comprend bien...

    Si je peux abuser un peu, quelle est alors la syntaxe d'appel du constructeur d'origine, et est ce qu'il s'appelle avant les initialisations, comme dans Delphi, ou après ?

    Merci d'avance,

    Robert

  4. #4
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    le constucteur par défaut de la classe TThread est appelé dans la liste d'initialisation de ta fonction, il me semble que tu n'a pas besoin de le rappeller. J'ai vu ca mais il y a longtemps donc je me rappelle plus très bien.

    Mais tu n'a pas forcément besoin d'un constructeur par défaut pour ta classe. il est possible d'avoir seulement un constructeur avec paramètres.

    A moins que tu est justement besoin d'un constructeur par défaut, dans ce cas, tu l'appelle simplement comme une fonction dans ton autre constructeur. Par contre il me semble qu'il faut l'appeler en premier, mais à vérifier.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 98
    Points : 48
    Points
    48
    Par défaut
    En tous cas, merci pour tes réponses qui m'ont permis d'avancer...

    Cordialement,

    Robert

  6. #6
    Membre confirmé Avatar de kurul1
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    933
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 933
    Points : 466
    Points
    466
    Par défaut
    Pas de problème, c'est fait pour ca le forum.

Discussions similaires

  1. [PHP 5.2] [POO] Surcharge du constructeur d'une classe
    Par anaranjado dans le forum Langage
    Réponses: 5
    Dernier message: 28/08/2009, 12h23
  2. Surcharge de constructeur de class
    Par topolino dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/01/2009, 14h25
  3. [POO] Constructeur de classe
    Par cescu dans le forum Langage
    Réponses: 7
    Dernier message: 14/02/2006, 21h50
  4. [Surcharge]Operateur<< avec une classe maison
    Par KeNnEdY dans le forum C++
    Réponses: 6
    Dernier message: 14/09/2005, 15h51
  5. Réponses: 7
    Dernier message: 15/07/2005, 15h07

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