Partage
  • Partager sur Facebook
  • Partager sur Twitter

POO: Librairies fichier header / fichier cpp

Doit-on inclure les librairies dans les deux fichiers?

    5 décembre 2019 à 11:46:03

    Bonjour,

    Je suis en train de suivre le cours de C++ sur la programmation orientée objets, et je me posais la question de savoir si nous incluons des librairies dans le header d'une classe, doit-on obligatoirement les inclure dans le fichier des définitions des méthodes (étant donné qu'on inclue déjà le header dans ce fichier)?

    En vous remerciant par avance pour vos éclaircissements!

    • Partager sur Facebook
    • Partager sur Twitter
      5 décembre 2019 à 12:09:01

      Une réponse en style télégraphique à ta question: https://zestedesavoir.com/forums/sujet/3703/la-programmation-en-c-moderne/?page=26#p210620

      PS: on n'inclut pas des bibliothèques, mais des fichiers d'en-tête. Une bibliothèque quand on l'utilise côté développeurs, il faut ses symboles regroupés dans un binaire (.so/.dll en dynamique, ou .a/.lib en statique), plus de quoi permettre au compilateur de savoir à quoi on fait référence: les fichiers d'entête qui déclarent les fonctions et définissent les types que l'on utilise.

      • Partager sur Facebook
      • Partager sur Twitter
      C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
        6 décembre 2019 à 7:54:35

        D'une manière générale, on ne doit pas faire de supposition sur les include des include d'un fichier.
        • Partager sur Facebook
        • Partager sur Twitter
          6 décembre 2019 à 12:06:24

          Dans toto.cpp, on a parfaitement le droit de supposer ce qui est dans dans toto.h.
          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            6 décembre 2019 à 15:16:19

            Okay merci pour vos réponses à tous.

            Donc si je comprends bien, lorsque je fais un include, c'est juste une information qu'on donne au compilateur? 

            Cela n'engendre pas de processus couteux supplémentaires lors de la compilation comme un chargement de librairie?

            • Partager sur Facebook
            • Partager sur Twitter
              6 décembre 2019 à 15:36:02

              Si tu utilises un compilateur à la *nix, passe l'option -E (gcc, clang...) et regarde le résultat. Et bien, ça c'est la sortie du précompilateur. Ca s'appelle une unité de traduction, et c'est ça que le compilateur compile.

              Le compilateur, ne sait pas ce qu'est un `#include`.

              • Partager sur Facebook
              • Partager sur Twitter
              C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.

              POO: Librairies fichier header / fichier cpp

              × 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