Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Classe] Classe.methode.methode ??

Event.Size.Height

    12 août 2008 à 17:29:15

    Salut à tous !

    En fait j'ai trouvé dans la SFML un code comme ceci: Event.Size.Height et je me demande à quoi il correspond car il y a 2 "." or, c'est normalement classe.methode

    Voila, merci d'avance et à bientot !
    • Partager sur Facebook
    • Partager sur Twitter
      12 août 2008 à 17:34:41

      Il y'a des cas où Classe.méthode retourne une classe.
      Par exemple, pour faire simple, en Qt, il y'a une méthode qui retourne la fenêtre active:
      zoneCentrale->activeSubWindow()
      

      Admettons que l'on veuille changer le titre de la fenêtre, on fait :
      zoneCentrale->activeSubWindow()->setWindowTitle("Mon nouveau titre");
      

      Voilà.
      Je crois que c'est bien expliqué.
      PS: Pour ce qui est des ->, qu'il ne t'embrouillent pas le cerveau, elles sont à la place des point car on travaille avec des pointeurs.
      • Partager sur Facebook
      • Partager sur Twitter
        12 août 2008 à 17:37:19

        Je ne connais pas spécialement la SFML, mais Event.Siz.Height, c'est qu'on accéde à la propriété Height de la structure Size, elle propriété de la classe event.
        Il est possible d'écrire classe.méthode().méthode(), cella revient à (classe.méthode1()).méthode2(), en gros on utilise la méthode2 d'un objet retourné par la méthode1. (A noté que certaines écritures de ce type sont pour certains mauvaise, ne respectant pas toujours LoD)
        • Partager sur Facebook
        • Partager sur Twitter
        FaQ : Fr | En 1 2 | C++11 | Template || Blog : Deloget | C++|Boost--Dev | C++Next | GotW || Installer Boost
          13 août 2008 à 1:22:52

          Pour ce qui est du
          Classe.Methode().Methode();
          


          Ca s'appelle le chaînage d'appel ;)
          • Partager sur Facebook
          • Partager sur Twitter
            13 août 2008 à 3:23:54

            Salut ,

            ok pour les classes ^^
            mais y a pas que les classes auquel on devrais écrire les points ,
            prenons le cas des structures :
            #include <cstdlib>
            #include <iostream>
            
            using namespace std;
            
            struct personnage
            {
                string nom ;
                string prenom ;
            };
            
            struct individus
            {
                string sexe ;
                personnage monIndividus ;
            };
            
            struct famille
            {
                string adresse ;
                individus maFamille ;
            };
            
            int main(int argc, char *argv[])
            {
                famille aJacque ;
                aJacque.maFamille.monIndividus.nom ="Dupon";
                cout << "Nom de famille de jacque : "<< aJacque.maFamille.monIndividus.nom << endl ;
                system("PAUSE");
                return EXIT_SUCCESS;
            }
            


            bon mon exemple est tirer par les cheveux :p
            mais ça montre bien que ça fonctionne .
            On peut tout a fait faire la même choses avec des objets .
            • Partager sur Facebook
            • Partager sur Twitter
              13 août 2008 à 3:46:27

              Citation : Idefix57

              Salut ,

              ok pour les classes ^^
              mais y a pas que les classes auquel on devrais écrire les points ,
              prenons le cas des structures :

              #include <cstdlib>
              #include <iostream>
              
              using namespace std;
              
              struct personnage
              {
                  string nom ;
                  string prenom ;
              };
              
              struct individus
              {
                  string sexe ;
                  personnage monIndividus ;
              };
              
              struct famille
              {
                  string adresse ;
                  individus maFamille ;
              };
              
              int main(int argc, char *argv[])
              {
                  famille aJacque ;
                  aJacque.maFamille.monIndividus.nom ="Dupon";
                  cout << "Nom de famille de jacque : "<< aJacque.maFamille.monIndividus.nom << endl ;
                  system("PAUSE");
                  return EXIT_SUCCESS;
              }
              



              bon mon exemple est tirer par les cheveux :p
              mais ça montre bien que ça fonctionne .
              On peut tout a fait faire la même choses avec des objets .



              Les structures SONT des classes.
              aJacques est un objet, maFamille aussi, de même que monIndividus (nom, prenom, sexe et adresse aussi)
              Donc on peut le faire avec des objets c'est ce que tu viens de faire :p
              • Partager sur Facebook
              • Partager sur Twitter
              FaQ : Fr | En 1 2 | C++11 | Template || Blog : Deloget | C++|Boost--Dev | C++Next | GotW || Installer Boost
                13 août 2008 à 3:51:56

                Ha ok :)

                ce sont des objets mais on peu pas
                mettre 'private' etc .... :ange:
                • Partager sur Facebook
                • Partager sur Twitter
                  13 août 2008 à 3:54:23

                  Citation : Idefix57

                  Ha ok :)

                  ce sont des objets mais on peu pas
                  mettre 'private' etc .... :ange:



                  Faux. On peut.
                  En C++, struct == class, à une différence près: tout est (même l'héritage), par défaut, publique dans une structure, ce qui n'est pas le cas d'une classe.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    13 août 2008 à 4:01:51

                    Ok Ice_Keese
                    je viens de faire l'essai
                    mais ce que je voulais dire ,
                    que c'étais dans le 'c' qu'on savais pas .
                    bien que j'ai fait mon exemple en 'c++' :p
                    c'est de ma faute :honte:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 août 2008 à 4:02:43

                      Citation : Idefix57

                      Ok Ice_Keese
                      je viens de faire l'essai
                      mais ce que je voulais dire ,
                      que c'étais dans le 'c' qu'on savais pas .
                      bien que j'ai fait mon exemple en 'c++' :p
                      c'est de ma faute :honte:



                      Il n'y a pas de classes dans le C, de toutes façons.
                      Et puis, c'est le forum de C++, ici...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      [Classe] Classe.methode.methode ??

                      × 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