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 :

identificateur non déclaré


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 56
    Points : 29
    Points
    29
    Par défaut identificateur non déclaré
    Mon programme se compile normalement mais lors de l'exécution j'ai plusieurs erreurs de ce type:"erreur C2065:'nom_de_la_variable':identificateur non déclaré
    et c'est presque pour chaque variable déclarée privée et lorsque je l'utilise dans le fichier .cpp correspondant l'erreur me parviend.

  2. #2
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Il faudrait que l'on voit le code qui provoque cette erreur pour pouvoir te répondre. Merci

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 56
    Points : 29
    Points
    29
    Par défaut
    voici un exemple donc:
    Dans le fichier .h;

    private:
    Case obstacle[2500];

    et qu'on j'utilise la variable obstacle dans le .cpp comme suit:
    obstacle[i]=entier;
    il m'affiche l'erreur :
    Erreur 4 error C2065: 'obstacle'*: identificateur non déclaré c:\users\mm\documents\visual studio 2008\projects\jeurobot\jeurobot\grille.cpp 36 JeuRobot

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Points : 4 732
    Points
    4 732
    Par défaut
    Ce sont des variables membres, elles sont liés à une classe et n'existent que quand un objet est instancié.

    Une petite incursion dans ton cours t'aurait rappelée ces propriétés fondamentales.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 56
    Points : 29
    Points
    29
    Par défaut
    Oui ça est évident(que les variables sont utilisées par les objets)
    mais lorsque j'utilise une variable notée private (qui n'est pas statique)dans une méthode liée à la même classe (que celle de la variable )alors c'est l'objet créé qui utilisera celle ci!

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Citation Envoyé par dingua Voir le message
    Oui ça est évident(que les variables sont utilisées par les objets)
    mais lorsque j'utilise une variable notée private (qui n'est pas statique)dans une méthode liée à la même classe (que celle de la variable )alors c'est l'objet créé qui utilisera celle ci!
    Salut,
    Montres nous ton code : la déclaration de la fonction et des membres dans le .h, la définition de la fonction dans le .cpp. Car là, difficile de comprendre ton problème.
    Le code suivant compile chez moi :
    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
    #include <iostream>
    class A
    {
    public:
        void fonction();
    private:
        int membre;
    };
     
    void A::fonction()
    {
        membre = 0;
        std::cout<<membre<<"\n";
    }
     
    int main()
    {
        A a;
        a.fonction();
        return 0;
    }

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 56
    Points : 29
    Points
    29
    Par défaut
    fichier Robot.h
    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
    28
    29
    30
    31
    32
    33
    34
    35
    #pragma once
     
    #include "Grille.h"
    #include "Itineraire.h"
     
    class Grille;
    class Robot
    {
    private:
    	int posColonne;
    	int posLigne;
    	Grille* maGrille;	
     
    public:
    	enum Sens{
    	sud,
    	est,
    	nord,
    	ouest
     
    };
    int cmpt_tourne;
     
    	Robot(void);
    	~Robot(void);
    	Robot(int,int);
     
    	Itineraire atteindrePosition(Case);
    	bool presenceObstacle(Case);
    	Sens prochaineCaseAvisiter();
    	void afficher_grille(void);
    	int get_posLigne(){return posLigne;};
    	int get_posColonne(){return posColonne;};
    	Grille* get_maGrille(){return maGrille;}
    };
    fichier Robot.cpp(portion)
    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
    28
    29
    30
    31
    32
    33
    Itineraire atteindrePosition(Case& arrivee){
     
     
    	Itineraire  itineraire ( new Case(get_posLigne,get_posColonne), arrivee);
     
     
     
    while(posLigne != arrivee.get_Ligne()) && (posColonne != arrivee.get_Col())){
     
     
     
    cmpt_tourne=(cmpt_tourne%4);
    Case B;
    bool ajout=false;
    tourne_mem_etat=0;
     
     
    while((tourne_meme_etat<4)&&(!ajout)){
     
    	cmpt_tourne=(cmpt_tourne%4);
     
     
    	switch( prochaineCaseAVisiter())
    	{
     
     
    	case Sens.sud :B=new Case(posLigne+1,posColonne);
    	case Sens.est :B=new Case(posLigne,posColonne+1);
    	case Sens.nord:B=new Case(posLigne-1,posColonne);
    	case Sens.ouest:B=new Case(posLigne,posColonne-1);
     
     
    	}
    vous pouvez voir le cas de la variable posLigne

  8. #8
    Membre émérite

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Points : 2 252
    Points
    2 252
    Par défaut
    Ha voilà, c'est plus simple avec un peu de code
    Donc le problème vient du fait que tu as oublié le Robot:: dans la définition de la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Itineraire Robot::atteindrePosition(Case& arrivee)
    {
     ...
    }
    Si tu ne le mets pas, alors le compilateur déclare et définit une fonction libre (cad qui n'est attachée à aucune classe) nommée atteindrePosition() et renvoyant un Itinéraire; fonction qui n'aura aucun rapport avec la fonction membre atteindrePosition() de la classe Robot.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 56
    Points : 29
    Points
    29
    Par défaut
    ça m'échappe vraiment,en tout cas merci!(oui , g t un vrai débutant David)

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

Discussions similaires

  1. [D5] Identificateur non déclaré
    Par MelkInarian dans le forum Delphi
    Réponses: 2
    Dernier message: 20/04/2007, 18h20
  2. findcomponent, identificateur non déclaré
    Par chourmo dans le forum Delphi
    Réponses: 3
    Dernier message: 04/07/2006, 14h54
  3. Identificateur non déclaré
    Par nisere dans le forum Langage
    Réponses: 2
    Dernier message: 21/03/2006, 10h33
  4. Identificateur non déclaré : 'Null'
    Par Mofid04 dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/03/2006, 12h47
  5. Problème d'identificateur non déclaré
    Par renorx dans le forum Débuter
    Réponses: 3
    Dernier message: 14/11/2005, 21h39

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