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 :

espace de nom (namespace)


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 64
    Points : 40
    Points
    40
    Par défaut espace de nom (namespace)
    Bonjour,

    J'ai créé plusieurs répertoirs maths, draw ... où chaque fichier est définit par un espace de nom.

    par exemple, ./src/maths/espace.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #ifndef ESPACE_H
    #define ESPACE_H
     
    #include "../defines.h"
    ...
     
    namespace maths {
     
    class Espace
    {...}
    }
    J'ai créé un fichier entête général pour définir des macros :

    fichier ./src/defines.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #ifndef DEFINES_H
    #define DEFINES_H
     
    #define QSPEspace QSharedPointer<maths::Espace>
    #define QSPVImage QSharedPointer< std::vector<cv::Mat> >
     
    #endif // DEFINES_H
    Mon soucis avec ce fichier, c'est que la macro QSPEspace ne va pas passer à la compilation des fichiers situés dans le répertoire maths.

    Mais si j'écris du coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #ifndef DEFINES_H
    #define DEFINES_H
     
    #define QSPEspace QSharedPointer<Espace>
    #define QSPVImage QSharedPointer< std::vector<cv::Mat> >
     
    #endif // DEFINES_H
    Cette fois ci si je veux que ça compile je suis obligé d'avoir un 'using namespace maths;' dans mon fichier ./src/draw/draw.cpp .

    J'aimerais avoir quelque chose de propre, qu'est ce qui serait le mieux de faire pour mes macros QSPEspace QSPVimage ?

    Merci d'avance, :-)

  2. #2
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 113
    Points : 32 958
    Points
    32 958
    Billets dans le blog
    4
    Par défaut
    Salut,

    ton fichier defines est mauvais parce qu'il nécessite que d'autres fichiers soient inclus avant lui.
    Utilise des forward declaration dans defines.h pour régler ça.
    Et ajoute les includes manquants (vector).
    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.

Discussions similaires

  1. [Article] Espaces de noms (ou namespace) en JavaScript
    Par bigboomshakala dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 19/04/2018, 19h19
  2. [PHP 5.3] Espace de nom (namespace) pour éviter les conflits
    Par RunCodePhp dans le forum Langage
    Réponses: 17
    Dernier message: 30/09/2010, 11h02
  3. [XSD] [Namespaces] Format des espaces de noms
    Par inconnu652000 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 08/09/2009, 12h38

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