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 :

Namespace et fonctions : prototypes et déclaration


Sujet :

C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par défaut Namespace et fonctions : prototypes et déclaration
    Bonjour.

    C'est la première fois que j'utilise des namespaces pour regrouper des fonctions et je me demandais si le namespace exemple{ } devait englober les prototypes ou les déclarations des fonctions ou les 2 ?

    Merci

    EDIT : et si jamais j'ai un .h (prototypes) et un .cpp (déclarations) comment je fais ?

  2. #2
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Les namespaces sont des espaces de déclaration qui restent toujours ouvert, c'est à dire que tu peux faire ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    namespace N
    { /*code*/ }
    /*autre code*/
    namespace N
    { /*du code à rajouter dans le namespace*/ }
    Ce sont des espaces de déclarations donc le but est de contenir des déclarations. Les définitions lié à ces déclarations peuvent être placé dedans (en reouvrant le namespace par exemple) ou alors dehors en utilisant l'opérateur de résolution de portée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    namespace N
    { void foo(); /*déclaration de la fonction foo*/ }
     
    //1° méthode
    namespace N
    { void foo() {} /*ouverture du namespace et définition de la fonction foo*/ }
     
    //2° méthode
    void N::foo() {} //utilisation de l'opérateur de résolution de portée
    A noter aussi qu'une définition sans déclaration la précédent fait office de déclaration et de définition. Attention aussi à n'avoir qu'une seul définition. (plusieurs déclarations ne gènent pas, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    void foo();
    void foo();
    void foo() {}

  3. #3
    Membre éclairé
    Homme Profil pro
    Doctorant en Astrophysique
    Inscrit en
    Mars 2009
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Astrophysique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2009
    Messages : 312
    Par défaut
    Merci beaucoup pour cette explication très claire

Discussions similaires

  1. Fonction import en déclaration de servlet
    Par philo71 dans le forum Java EE
    Réponses: 2
    Dernier message: 30/12/2012, 18h35
  2. [Prototype] Fonction => Prototype
    Par buxbux dans le forum Bibliothèques & Frameworks
    Réponses: 4
    Dernier message: 26/03/2009, 18h16
  3. [Prototype] [POO] Fonction + prototype
    Par crickeur dans le forum Bibliothèques & Frameworks
    Réponses: 1
    Dernier message: 14/06/2008, 15h27
  4. pb appel de fonction prototypée
    Par taka10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2006, 08h39
  5. Réponses: 6
    Dernier message: 20/11/2005, 02h53

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