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 :

Accès au namespace d'une library perso impossible


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut Accès au namespace d'une library perso impossible
    Bonjour,

    J'ai un soucis avec un projet perso pour lequel j'ai décidé de séparer certains élément.
    La partie math + geométrie faisant partie d'une library static ou j'ai créé un namespace(mathStd)
    Mon problème est que les autres projet/library n'ont pas de visibilité sur ce namespace. J'ai l'erreur suivante Symbol 'mathStd' could not be resolved
    Sans le namespace plus de problème.

    J'utilise Eclipse CDT.

    Des extraits de source
    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
    16
    17
    18
    19
    namespace mathStd
    {
    	class Vec2 {
    	private:
    		double x, y;
    	public:
     
    		Vec2();
     
    		virtual ~Vec2();
     
    		Vec2(double x, double y);
     
    		Vec2(Vec2 const &vec);
     
    		Vec2 operator-() const;
    		Vec2 operator+(Vec2 const &vec) const;
    		Vec2 &operator+=(Vec2 const &vec);
    ...
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    using namespace mathStd;
     
    Vec2::Vec2() : x(0),y(0){}
     
    Vec2::~Vec2() {}
     
    Vec2::Vec2(double x, double y) : x(x),y(y) {}
     
    Vec2::Vec2(Vec2 const &vec){
    	x = vec.x;
    	y = vec.y;
    }
     
    /*********** operators ***********/
    Vec2 Vec2::operator-() const{
    	return {-x, -y};
    }
    Vec2 Vec2::operator+(Vec2 const &vec) const{
    	return {x + vec.x, y + vec.y};
    }
    Vec2 &Vec2::operator+=(Vec2 const &vec){
    	x += vec.x;
    	y += vec.y;
    	return *this;
    }
    ...

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 502
    Par défaut
    Vous n'avez pas bien compris "using namespace xxx;"
    Cela ne fait qu'injectez dans contenu du namespace xxx dans le namespace "sans nom".
    Ici, vous voulez définir des fonctions dans un namespace bien précis.

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    namespace mathStd
    {
            Vec2::Vec2() : x(0),y(0){}
     
            Vec2::~Vec2() {}
     
            Vec2::Vec2(double x, double y) : x(x),y(y) {}
     
            Vec2::Vec2(Vec2 const &vec){
            	x = vec.x;
            	y = vec.y;
            }
     
            /*********** operators ***********/
            Vec2 Vec2::operator-() const{
            	return {-x, -y};
            }
            Vec2 Vec2::operator+(Vec2 const &vec) const{
            	return {x + vec.x, y + vec.y};
            }
            Vec2 &Vec2::operator+=(Vec2 const &vec){
            	x += vec.x;
            	y += vec.y;
            	return *this;
            }
            ...
    }

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    Les 2 syntaxes donne le même résultat et la compilation de la library se passe bien.
    D'ailleurs j'ai trouvé les 2 types d'implémentation en exemple sur le net, j'ai opté pour la plus simple pour une première version, mais j'ai testé la version proposé.

    Le problème dans le projet qui importe la library persiste, aucune visibilité du namespace dans les 2 cas.

  4. #4
    Rédacteur/Modérateur


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

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 151
    Billets dans le blog
    4
    Par défaut
    C'est quoi l'erreur ? Le mesage exact et non "ça marche pas".
    Tu inclues le header qui définies Vec2 et peux l'utiliser avec mathStd::Vec2.
    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.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 110
    Par défaut
    L'erreur est en gras dans le premier message, lorsque je veux utiliser le namespace dans un projet qui utilise cette library, avec using namespace mathStd ou mathStd::Vec2

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 502
    Par défaut
    Bon, montre ton code.
    Celui de "mathStd::Vec2" ET celui qui s'en sert.

    Tu ne sais tellement pas ce que tu fais que t'es pas foutu de nous donner les extrait de code pertinents, alors donne nous tout ce code.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/05/2012, 12h04
  2. Acces à un control via une class perso
    Par parabole33 dans le forum C#
    Réponses: 15
    Dernier message: 27/07/2009, 11h03
  3. Accès aux membres d'une classe impossible
    Par couicsilver dans le forum C++
    Réponses: 5
    Dernier message: 18/03/2009, 11h21
  4. [TOMCAT] JSP problème d'accès aux méthodes d'une classes
    Par gunnm dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 22/05/2004, 14h02
  5. [ JSP ] [ Tomcat ] importer une classe perso
    Par captainpouet dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 11/03/2004, 11h30

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