Partage
  • Partager sur Facebook
  • Partager sur Twitter

POO - Namespace

Erreur dans le cours

    29 novembre 2006 à 22:50:10

    Bonjours,

    J' ai lu le premier chapitre du cours de Mateo : et je crois avoir remarqué une grossiére erreur :
    Ce que Mateo presente avec les espace, c' est le concept des namespaces. Mais ce n' est absomument pas parce que vous utilisez les namespaces que vous faite de la POO. Comme il le presente, c' est plutôt de la programation procedurale.

    Wikipedia : la POO
    Wikipedia : programmation procedurale ou imperative.

    C' est vraiment une grosse erreur.
    • Partager sur Facebook
    • Partager sur Twitter
      30 novembre 2006 à 13:33:50

      qu'est ce que tu prendrais pour expliquer les classes ?
      perso les "namespace" ne sont que des espaes plus grands pouvant contenir tout et n'importe quoi (comme d'autres espaces)
      • Partager sur Facebook
      • Partager sur Twitter
        30 novembre 2006 à 13:35:09

        La confusion est possible à ce stade je l'admets, mais le principe était d'introduire à l'idée que l'on regroupe les fonctions par thème. Cela sera plus détaillé dans les prochains chapitres ne t'en fais pas.
        • Partager sur Facebook
        • Partager sur Twitter

        If you'd like to join us, read "How do we work at OpenClassrooms"! :)

          30 novembre 2006 à 14:25:58

          "Par thème"... Je trouve la formulation complètement nulle. En POO, ya des objets. Un objet, c'est pas un ensemble de fonctions du même thème, ça n'a même rien à voir. Dans une classe "microonde", tu peux avoir des méthodes pour faire tourner le plateau et pour programmer la durée de la cuisson, ça n'a rien à voir. Pourtant c'est dans le même objet.
          • Partager sur Facebook
          • Partager sur Twitter
            30 novembre 2006 à 16:23:52

            Par extension, le micro-ondes est le thème commun.
            • Partager sur Facebook
            • Partager sur Twitter

            If you'd like to join us, read "How do we work at OpenClassrooms"! :)

              9 décembre 2006 à 18:35:20

              Oui, mais il peut y avoir plusieurs objets micro-ondes, avec toute leurs fonctions, alors que les namespaces n' existe qu' en une seule instance. Une fonction agit sur les paramétre, alors qu' une methode agit aussi sur son objet.
              • Partager sur Facebook
              • Partager sur Twitter
                10 décembre 2006 à 11:29:07

                Le namespace est un "englobeur", le principe même de la POO.
                • Partager sur Facebook
                • Partager sur Twitter
                  10 décembre 2006 à 12:12:10

                  Citation : ostream

                  Oui, mais il peut y avoir plusieurs objets micro-ondes, avec toute leurs fonctions, alors que les namespaces n' existe qu' en une seule instance. Une fonction agit sur les paramétre, alors qu' une methode agit aussi sur son objet.



                  Mais tous les micro-ondes de l'univers partagent en commun le fait d'être des micro-ondes. En cela le concept de thème introduit par m@teo21 me semble parfaitement approprié. Le namespace micro-ondes regroupe les types, valeurs, règles, classes, fonctions qui touchent de près où de loin au concept de four micro-ondes. En quelque sorte il définit le thème du four micro-ondes et tout ce qui s'y rapporte.

                  D'ailleurs le terme même namespace, suggère cette approche. En français namespace se traduit littéralement par espace de nom, le concept implémenté est typiquement celui d'espace de theme. Toutes les informations relatives à un même thème se regroupent dans le même espace.

                  Par analogie, dans le domaine linguistique, on parle d'anglais littéraire, d'anglo-américain, d'anglais techniques (ils y en a une multitude). L'anglais en tant que langue est le C++, ses différentes implémentations: anglais médical, anglais littéraire, anglais informatiques, anglais financier, anglo-américain, australien... sont des namespace.

                  Tout ces anglais utilisent le même langage de base (l'anglais), mais ils implémentent des concepts différents, utilisent un vocabulaire différent, des tournures de phrases différentes. La signification d'une phrase en anglais technique dépend fortement du domaine technique dans laquelle elle est produite.

                  Un avocat et un médecin qui discutent en anglais en utilisant leur jargon spécifique vont se comprendre s'ils replacent les concepts qu'ils emploient dans leurs domaines respectifs.

                  Par exemple, le médecin dira "en médecine ...", l'avocat dira "en droit ...". Il y a ici deux namespace, le namespace médecine et le namespace droit.

                  • 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
                    10 décembre 2006 à 12:36:02

                    Citation : M@teo21

                    Par extension, le micro-ondes est le thème commun.


                    Ce serait plutôt la popote...
                    // Thème
                    namespace Cuisine {
                        // Classe
                        class Microonde {
                            ...
                        public:
                            // Méthode
                            void Cuit(aliment&);
                        };
                    };
                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 décembre 2006 à 14:23:50

                      l'exemple de l'anglais dérivé est a mon sens un mauvais exemple :
                      pour reprendre l'exemple de remram44, je verrai ton concept comme ça :


                      namespace Langage {

                          class Anglais {
                             // ...
                          };
                          class AnglaisMedical : Anglais {
                             // ...
                          };
                      };
                      • Partager sur Facebook
                      • Partager sur Twitter
                        10 décembre 2006 à 14:54:40

                        Citation : fser

                        l'exemple de l'anglais dérivé est a mon sens un mauvais exemple :
                        pour reprendre l'exemple de remram44, je verrai ton concept comme ça :


                        namespace Langage {

                            class Anglais {
                               // ...
                            };
                            class AnglaisMedical : Anglais {
                               // ...
                            };
                        };


                        Non, ceci est faux, et ne reflète absolument pas ce que je voulais dire. Relisez mon post précédent, mon analogie avec l'anglais se situe au niveau supérieur. L'anglais dans mon analogie est le langage de programmation lui même, pas un objet du langage. Dans l'optique de mon explication, on programme en anglais, pas en C++.
                        • 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
                          19 décembre 2006 à 12:02:44

                          Ce n' est pas ce que je veux dire :
                          Imaginons que je veuille me cuire un steak au micro-onde.
                          Si j' ai bien compris les differents concepts, en programation procedurale, je ferait comme ça :
                          namespace MicroOnde{
                          void CuireSteak();
                          void CuireFromage();
                          }

                          int main(){
                            MicroOnde::CuireSteak();
                          }



                          En POO, je ferait comme ça :

                          class Aliment{
                           // ...
                          };

                          class MicroOnde{
                          void CuireAliment(Aliment& aliment);
                          //...
                          };

                          class Steak : public Aliment{
                          //...
                          };

                          int main(){
                          Steak steak;
                          MicroOnde microonde;
                          microonde.CuireAliment(steak);
                          }


                          Et puis, pour int21h, je ne crois pas que ça soit comparable :
                          les languages naturels sont constitué de mots et de phrases, alors que les language de programmation son constituée de fonctions et de variables
                          • Partager sur Facebook
                          • Partager sur Twitter
                            20 décembre 2006 à 23:20:23

                            oui up ?
                            quel est l'intéret de poster pour dire up ?

                            Par exemple je peux dire que moi je vois pas ça comme ça, car je ferais plutot une class template pour pouvoir cuire autre chose que des steack achés, puis aussi que je passerait l'aliment par le constructeur (genre je le met dedans) puis je déclencherai la cuisson par exemple.
                            bref ...
                            • Partager sur Facebook
                            • Partager sur Twitter

                            POO - Namespace

                            × 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