Partage
  • Partager sur Facebook
  • Partager sur Twitter

Initialiser un tableau d'objet DIRECTEMENT lors de la déclaration

Possible ou pas

Anonyme
    15 avril 2008 à 16:45:51

    Bonjour,

    Je travaille avec Qt et je me trouve face à un problème :

    Comment pourrais-je initialiser mon tableau d'objet (qui est dans le cas présent un tableau de boutons) ?

    J'ai essayé diverses techniques, mais aucune ne marche.

    Merci d'avance pour votre aide.

    EDIT :

    Bon j'ai quand même une solution, utiliser les méthodes setTruc pour modifier les attributs après.

    Mais dans le cas d'objet qui doivent être OBLIGATOIREMENT initialisés, on fait comment ?

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      15 avril 2008 à 17:03:40

      Qu'est ce que tu as comme tableau ? Un vector ? Un tableau statique (celui avec les [] ) ?
      • Partager sur Facebook
      • Partager sur Twitter
      Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
      Anonyme
        15 avril 2008 à 17:05:01

        On ne peut pas.Enfin pou un tableau C-like pure (cad codé avec un pointeur + new[]).

        Pour un tableau vector-like (std::vector, boost::array et j'en pense), on peut passer par list_of de boost::assign pour l'initialiser avec des objets complets
        • Partager sur Facebook
        • Partager sur Twitter
          15 avril 2008 à 17:06:10

          Ou sans utiliser Boost en utilisant un des constructeurs de ta classe.
          • Partager sur Facebook
          • Partager sur Twitter
          Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
          Anonyme
            15 avril 2008 à 17:08:01

            Comme cela tu veux dire ?

            bouton= new QPushButton[10]; // dans le constructeur
            
            • Partager sur Facebook
            • Partager sur Twitter
              15 avril 2008 à 17:10:17

              Si tu fais un tableau comme cela, ce n'est pas possible.
              • Partager sur Facebook
              • Partager sur Twitter
              Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
              Anonyme
                16 avril 2008 à 7:45:06

                Et dans le cas d'un tableau "normal" ?
                • Partager sur Facebook
                • Partager sur Twitter
                  16 avril 2008 à 19:17:43

                  Un truc de ce genre devrait pouvoir marcher, note que je ne connais absolument pas Qt, donc mon constructeur de QPushButton est purement théorique, je suppose qu'il existe un constructeur de QPushButton qui prend ces paramètres là. A toi ensuite d'adapter la sauce à ce que tu veux faire exactement.

                  class MyQPushButton : public QPushButton
                  {
                     static int ms_index;
                     static std::string ms_Label;
                     static int MSGetXPosition(int Index);
                     static int MSGetYPosition(int Index);
                     static int MSGetLenght(int Index);
                     static int MSGetHeight(int Index);
                     static std::string& MSGetLabel(int Index,std::string & label = ms_Label);
                  public:
                  
                     enum WndIndex{dialog1 = 0,dialog2 = 50, dialog3 = 100};
                  
                     static void SetIndex(WndIndex idx = dialog1) {ms_Index = WndIndex;}
                  
                     MyQPushButton(int Index = ms_index):
                        QPushButton(MSGetLabel(Index),MSGetXPosition(Index),MSGetYPosition(Index),MSGetLength(Index),MSGetHeight(Index){ms_Index++;}
                  };
                  
                  int MyQPushButton::msIndex = MyQPushButton::dialog1;
                  
                  std::string MyQPushButton::ms_Label =  "OUUUUUUPSSS"; // en cas de souci 
                  


                  L'idée est d'initialiser le bouton avec des informations (dans un fichier, une base de données...), que je vais récupérer en me servant du membre statique ms_Index comme clé de recherche. En partant du principe que les index des boutons que je dois créer pour ma fenêtre se suivent, chaque appel au constructeur de MyQPushButton incrémente le statique, donc permettra d'initialiser le bouton suivant avec les bons paramètres, pourvu bien sûr que les index décrivant les boutons à créer se suivent.

                  Par exemple pour créer les dix 10 boutons de la seconde boite de dialogue

                  MyQPushButton::SetIndex(MyQPushButton::dialog2);
                  MyQPushButton * ArrayButton = new MyQPushButton[10];
                  





                  • Partager sur Facebook
                  • Partager sur Twitter
                  Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

                  Initialiser un tableau d'objet DIRECTEMENT lors de la déclaration

                  × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                  × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                  • Editeur
                  • Markdown