{C++} Question d'inclusion fichiers cpp
Fermé
playboy-1990
Messages postés
458
Date d'inscription
samedi 27 mars 2010
Statut
Membre
Dernière intervention
10 septembre 2016
-
Modifié par playboy-1990 le 13/10/2012 à 03:52
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 oct. 2012 à 17:08
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 oct. 2012 à 17:08
A voir également:
- {C++} Question d'inclusion fichiers cpp
- Wetransfer gratuit fichiers lourd - Guide
- Renommer plusieurs fichiers - Guide
- Explorateur de fichiers - Guide
- Fichiers bin - Guide
- Fichiers dat - Guide
2 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
13 oct. 2012 à 12:10
13 oct. 2012 à 12:10
Bonjour,
Je ne vois pas en quoi le C++ ne fonctionne pas comme les autres pour l'inclusion de fichier. En tout cas, il fonctionne sur le même principe que le C.
Il inclut l'entête .hpp dans chacun des fichiers. Ensuite, il va compiler chacun des fichiers séparément (enfin c'est toi qui vas lui demander) pour produire un fichier objet.
Et lors de l'édition des liens (dernière étape de la compilation), il rassemblera chacun des fichiers objets en un exécutable. Il aura ainsi connaissance des codes de toutes les fonctions se trouvant dans chacun des fichiers .hpp.
Cdlt,
Je ne vois pas en quoi le C++ ne fonctionne pas comme les autres pour l'inclusion de fichier. En tout cas, il fonctionne sur le même principe que le C.
Il inclut l'entête .hpp dans chacun des fichiers. Ensuite, il va compiler chacun des fichiers séparément (enfin c'est toi qui vas lui demander) pour produire un fichier objet.
Et lors de l'édition des liens (dernière étape de la compilation), il rassemblera chacun des fichiers objets en un exécutable. Il aura ainsi connaissance des codes de toutes les fonctions se trouvant dans chacun des fichiers .hpp.
Cdlt,
playboy-1990
Messages postés
458
Date d'inscription
samedi 27 mars 2010
Statut
Membre
Dernière intervention
10 septembre 2016
273
13 oct. 2012 à 16:49
13 oct. 2012 à 16:49
Merci, mais comment il sait qu'il doit inclure les fichiers .cpp car on n'indique pas #include "MaClass.cpp" mais uniquement #include "MaClass.hpp"
Pour la différence avec le C et C++ par rapport aux autres langages, c'est qu'il ne faut pas faire la définissions des fonctions et donc il n'y a pas ce problème des fichier headers, ... en gros tous les fichiers doivent être inclus sans exception.
Pour la différence avec le C et C++ par rapport aux autres langages, c'est qu'il ne faut pas faire la définissions des fonctions et donc il n'y a pas ce problème des fichier headers, ... en gros tous les fichiers doivent être inclus sans exception.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 835
13 oct. 2012 à 17:08
13 oct. 2012 à 17:08
Merci, mais comment il sait qu'il doit inclure les fichiers .cpp car on n'indique pas #include "MaClass.cpp" mais uniquement #include "MaClass.hpp"
Cf. ma réponse ci-dessus.
Je la refais autrement : tu vas compiler avec :
g++ -c Main.cpp -o Main.o
g++ -c MaClass.cpp -o MaClass.o
g++ Main.o Maclass.o -o Programme
Pour les deux premières lignes, le compilateur inclus simplement les .hpp. Et compilera. A ce moment-là, le compilateur n'a pas besoin de connaître le code MaClass.cpp. Le compilateur sait juste qu'il existe quelque part.
Puis à la troisième ligne, tout s'emboîte. Le compilateur va pouvoir faire les correspondances.
Cf. ma réponse ci-dessus.
Je la refais autrement : tu vas compiler avec :
g++ -c Main.cpp -o Main.o
g++ -c MaClass.cpp -o MaClass.o
g++ Main.o Maclass.o -o Programme
Pour les deux premières lignes, le compilateur inclus simplement les .hpp. Et compilera. A ce moment-là, le compilateur n'a pas besoin de connaître le code MaClass.cpp. Le compilateur sait juste qu'il existe quelque part.
Puis à la troisième ligne, tout s'emboîte. Le compilateur va pouvoir faire les correspondances.