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

Langage C++ Discussion :

Espaces de nom anonymes


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Espaces de nom anonymes
    Soit :

    fichier1.hxx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    namespace
    {
    	int maVariable;
    }
    fichier2.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #include "fichier1.hxx"
     
    namespace
    {
    	int maFonction()
    	{
    		maVariable = 5;
    		return maVariable;
    	}
    }
     
    int main()
    {
    	std::cout << maFonction() << std::endl;
    }
    Bon, fichier2.cpp voit maVariable définie dans fichier1.cxx.
    Pourquoi ?
    Je croyais que les espaces anonymes n'étaient visibles que dans les fichiers où ils étaient définis ?
    Vous allez me dire que puisque c'est inclus, c'est comme si c'était le même fichier.
    C'est aussi simple que cela ?

    La FAQ di
    t :
    "Son utilité est de permettre la déclaration d'une variable/fonction/type dont la portée doit être celle du fichier."
    Du fichier source, ou du fichier compilé ?

  2. #2
    Membre Expert Avatar de Trademark
    Profil pro
    Inscrit en
    Février 2009
    Messages
    762
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 762
    Par défaut
    Salut,

    Vous allez me dire que puisque c'est inclus, c'est comme si c'était le même fichier.
    C'est aussi simple que cela ?
    Oui car le préprocesseur entre en jeu en premier, par conséquent les namespace sont résolus après.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 146
    Billets dans le blog
    4
    Par défaut
    Bonjour,
    Citation Envoyé par oodini Voir le message

    La FAQ di
    t :
    "Son utilité est de permettre la déclaration d'une variable/fonction/type dont la portée doit être celle du fichier."
    En fait la portée est l'unité de compilation. La FAQ est un peu vague à ce sujet effectivement et peut induire en erreur.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    OK, merci !

  5. #5
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Vous pouvez ajouter une entrée dans "Ressources C++ > FAQ C++" pour signaler le problème (pour ne pas oublier) et/ou proposer une correction ? (vous avez accès je pense)
    Merci

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Citation Envoyé par gbdivers Voir le message
    Vous pouvez ajouter une entrée dans "Ressources C++ > FAQ C++"
    J'ai du mal à trouver où ça se situe sur le site...

  7. #7
    Inactif  


    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5 288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5 288
    Par défaut
    Citation Envoyé par oodini Voir le message
    J'ai du mal à trouver où ça se situe sur le site...
    http://www.developpez.net/forums/f17...essources-cpp/

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

Discussions similaires

  1. Espaces de nom anonymes
    Par tnarol dans le forum C++
    Réponses: 1
    Dernier message: 28/12/2009, 17h24
  2. [d6][expert WSDL] problème d'espace de nom.
    Par tchup dans le forum Web & réseau
    Réponses: 1
    Dernier message: 01/09/2005, 14h46
  3. Supprimer les espaces des noms de fichier
    Par Cathy dans le forum Linux
    Réponses: 20
    Dernier message: 04/08/2005, 17h13
  4. [typedef] protection à travers les espaces de noms
    Par PINGOUIN_GEANT dans le forum C++
    Réponses: 7
    Dernier message: 02/02/2005, 20h21

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