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 :

Eigen déclaration de Matrix en extern


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut Eigen déclaration de Matrix en extern
    Bonjour à tous et merci d'avance à tout ceux qui daigneront apporter une réponse à ma question.

    Mon problème concerne la biblio Eigen,

    Je suis ds un cas ou j'aimerais déclarer plusieurs matrice hors du main.cpp, je crée donc 2 fichiers l'un .ccp l'autre .h
    Je déclare ma matrice ds un .h ainsi

    extern Eigen::Matrix <double,Dynamic,2> D;

    et de même sur le .cpp

    Matrix <double,Dynamic,2> D;

    je link mon .h à mon main.cpp et mon nouveau.cpp.
    et malgré celà je n'arrive pas a accéder à la variable par le main.

    J'ai constaté que cela fonctionnait très bien du moment qu'aucun paramètre n'était dynamique ... mais aucun intérêt pour moi, les dim de la matrice évolue ds l'algo.

    Merci d'avance pour vos réponses.

    Environnement windows vista
    compilateur code::Blocks

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Salut

    Citation Envoyé par theokoles Voir le message
    Je suis ds un cas ou j'aimerais déclarer plusieurs matrice hors du main.cpp. je crée donc 2 fichiers l'un .ccp l'autre .h
    Tu cherches visiblement à utiliser des variables globales. En général, les variables globales se déclarent justement dans le main.cpp. En général aussi, les variables globales sont une mauvaise idée et ne se déclarent pas du tout. Toi tu cherches les problèmes

    Il existe certainement une manière "propre" de faire ce que tu cherches. Peux tu nous en dire plus pour qu'on puisse t'orienter ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    Merci pour la réponse rapide !

    Il est vrai que c'est des variables globales. donc il serrait plus intéressant de le définir ds le main comme tu dis

    J'ai envi de faire ainsi pour deux raisons ^^

    - 1 - j'ai plusieurs de variables "Matrix" globales -> assez moche de tout laisser ds le main
    - 2 - c'est que j'appelle c'est variables dans d'autre fichiers .cpp qui contienne des fonctions que j'appelle ds le main ( en espérant être claire ^^)

    Je sais que la manière propre pour des variables simples (type double, int etc) est de définir en extern ds le .h et initialiser ds le .cpp.

    Là ds le cas des Matrix de Eigen ça marche pas trop :/ sauf si la matrice est static.

    En espérant avoir été plus clair et merci pour la réponse

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par theokoles Voir le message
    - 1 - j'ai plusieurs de variables "Matrix" globales -> assez moche de tout laisser ds le main
    Ca ne prend qu'une ligne à déclarer, pas de quoi fouetter un chat.

    Citation Envoyé par theokoles Voir le message
    - 2 - c'est que j'appelle c'est variables dans d'autre fichiers .cpp qui contienne des fonctions que j'appelle ds le main ( en espérant être claire ^^)
    Et le passage par référence, tu y as pensé ? Il te suffit de passer par référence tes matrices aux fonctions qui s'en servent. Tu dois à chaque passer plein de matrices ? Utilise un objet pour stocker des références à ces matrices et passe le par référence. Je peux te donner de l'aide si tu ne trouves pas comment faire.

    En tout cas, tu n'as pas besoin de variables globales pour le besoin que tu décris.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 5
    Par défaut
    Oui j'y ai pensé en effet, c'est juste que ma fonction n'a aucun paramètre et ne renvoie rien.

    void fontion ();

    et que je n'ai pas trop envi d'y toucher même s'il suffit juste d'ajouter en paramètres les éléments

    ça reste une solution en tout cas ^^
    Mais j'aimerais explorer d'autres issues, si tu as d'autre idées je suis preneur

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Par défaut
    Citation Envoyé par theokoles Voir le message
    Oui j'y ai pensé en effet, c'est juste que ma fonction n'a aucun paramètre et ne renvoie rien.
    Et alors ?

    Citation Envoyé par theokoles Voir le message
    et que je n'ai pas trop envi d'y toucher
    Désolé mais ce n'est pas vraiment un argument. J'ai l'impression qu'il y a quelque chose que tu ne veux pas dire. Pourquoi ne pas vouloir y toucher, qu'est ce que ça peut faire ? Si tu n'est pas prêt à changer la signature d'une fonction, qu'es-tu prêt à changer ?

Discussions similaires

  1. Déclaration forward ou external non-satistaite
    Par Invité dans le forum Débuter
    Réponses: 12
    Dernier message: 13/07/2008, 11h04
  2. Réponses: 4
    Dernier message: 20/09/2007, 08h57
  3. Déclaration forward ou external non satisfaite
    Par manel77 dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 27/07/2007, 12h29
  4. déclaration de fonctions externes
    Par poukill dans le forum C++
    Réponses: 40
    Dernier message: 17/05/2006, 16h15
  5. Déclaration de classes et méthodes externes
    Par rulianf dans le forum C++
    Réponses: 6
    Dernier message: 15/09/2005, 15h26

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