IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

implémentation dans un .h ?


Sujet :

C++

  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut implémentation dans un .h ?
    Bonjour,

    Un .h peut-il contenir de l'implémentation de méthodes ou seulement des déclarations?
    Par exemple, si on inclut stdio.h, le compilateur trouve l'implémentation des méthodes seul, car apparemment, stdio.h ne contient pas d'implémentation.
    Ou les trouve-t-il?

    si je fais un fichier projet.h, et que j'implémente les méthodes des classes de ce fichier dans un autre fichier projet.cpp.
    Ensuite je veux utiliser des méthodes déclarées dans projet.h dans une fonction main() d'un fichier run.cpp
    dans run.cpp, il y a un include de projet.h. Est-ce que ça marche? Si oui, j'aimerais surtout savoir pourquoi.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Un .h peut-il contenir de l'implémentation de méthodes ou seulement des déclarations?
    Sauf cas particulier (templates, inline), seulement les déclarations.

    Par exemple, si on inclut stdio.h, le compilateur trouve l'implémentation des méthodes seul, car apparemment, stdio.h ne contient pas d'implémentation. Ou les trouve-t-il?
    Dans la bibliothèque standard, qui est liée par défaut sur la plupart des compilos.

    si je fais un fichier projet.h, et que j'implémente les méthodes des classes de ce fichier dans un autre fichier projet.cpp.
    Ensuite je veux utiliser des méthodes déclarées dans projet.h dans une fonction main() d'un fichier run.cpp
    dans run.cpp, il y a un include de projet.h. Est-ce que ça marche? Si oui, j'aimerais surtout savoir pourquoi
    Ce n'est pas automatique, il faut à un moment que tu dises à l'éditeur de lien que telle fonction se trouve dans tel fichier compilé (ou dans telle bibliothèque). Mais ceci est fait automatiquement par les EDIs qui gèrent les projets.

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    Citation Envoyé par Loulou24
    il faut à un moment que tu dises à l'éditeur de lien que telle fonction se trouve dans tel fichier compilé (ou dans telle bibliothèque). Mais ceci est fait automatiquement par les EDIs qui gèrent les projets.
    Et dans le shell linux, ce serait quoi la ligne de commande pour compiler sans erreur?

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par slate
    Et dans le shell linux, ce serait quoi la ligne de commande pour compiler sans erreur?
    En deux fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // Compilation - produit run.o et projet.o
    g++ -c run.cpp projet.cpp
     
    // Edition de liens - produit l'executable run
    g++ -o run run.o projet.o
    En une fois :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -o run run.cpp projet.cpp

  5. #5
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 41
    Par défaut
    Ah, c'est ça qu'on appelle lédition de liens?

    cool merci beaucoup pour ton aide, tu m'en a appris plus que je n'en espérais

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Implémentation dans WPF de MVC ou MVVM
    Par titourock dans le forum Windows Presentation Foundation
    Réponses: 0
    Dernier message: 02/02/2010, 11h52
  2. Connaitre les fonctionnalités implémentées dans un noyau ?
    Par byloute dans le forum Administration système
    Réponses: 1
    Dernier message: 18/09/2009, 13h50
  3. petite erreur d'implémentation dans une liste simplement chaînée
    Par johnny3 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 26/10/2008, 16h57
  4. Réponses: 2
    Dernier message: 08/11/2007, 11h13
  5. Réponses: 3
    Dernier message: 01/12/2006, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo