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 :

fonction ou champ


Sujet :

C++

  1. #1
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    Par défaut fonction ou champ
    Salut à tous,


    je ne vois vraiment pas pourquoi le compilo prends ça pour une variable ou champ, au lieu d'une fonction. Je précise: c'est la fonction "void afficheArbre(etat *n)"

    quelqu'un a une idée?
    arbre.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #include <iostream>
    #include <string>
    using namespace std;
     
    int recurs(0);
     
    int main(int argc,char *argv[]){
    	return 0;
    }
     
    void afficheArbre(etat *n){
    	int i,j;
    	for(i=0;i<recurs;i++)
    		cout<<"|";
    	i=n->getNbFils();
    	cout<<'-'<<endl;
    	for(j=0;j<i;j++){
    		recurs++;
    		cout<<"-"<<endl;
    		branche(n->getFils(j));
    		recurs--;
    	}
    }
     
    void branche(etat *n){
    	int i,j;
    	for(i=0;i<recurs;i++)
    		cout<<"|";
    	cout<<n->getB()<<endl;
    	while(n->getNbFils()==1){
    		for(i=0;i<recurs;i++)
    			cout<<"|";
    		cout<<n->getB()<<endl;
    		n=n->getFils(0);
    	}
    	j=n->getNbFils();
    	if(j>0)
    		for(i=0;i<j;i++)
    			afficheArbre(n->getFils(i));
    }
    objets.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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    #include <vector>
    #include "objets.hpp"
    using namespace std;
     
    etat* etat::getFils(int x){
    	if(x<fils.size())
    		return fils[x];
    	else
    		return 0;
    }
     
    void etat::ajouterFils(){
    	fils.push_back(new etat);
    }
     
    int etat::getNbFils(){
    	return fils.size();
    }
     
    char etat::getB(){
    	return b;
    }
     
    void etat::setB(char x){
    	b=x;
    }
    et le fichier objets.hpp
    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
    #ifndef objets_hpp
    #define objets_hpp
     
    #include <vector>
     
    class etat{
    private:
    	int numNoeud;
    	etat *echec;
    	bool final;
    	std::vector<etat*>fils;
    	char b;
    public:
    	etat *getFils(int x);
    	void ajouterFils();
    	int getNbFils();
    	char getB();
    	void setB(char x);
    };
    #endif
    voici le message du compilo:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    arbre.cpp:11:19: error: variable or field ‘afficheArbre’ declared void
    arbre.cpp:11:19: error: ‘etat’ was not declared in this scope
    arbre.cpp:11:25: error: ‘n’ was not declared in this scope

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    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 147
    Billets dans le blog
    4
    Par défaut
    Comme le précise le message, le type etat n'existe pas.
    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.

  3. #3
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    Par défaut
    etat est une classe
    pour déclarer une objet, on utilise la classe comme type

  4. #4
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    Par défaut
    je ne parle pas des deuxième et troisième ligne sur les messages
    le problème c'est que la fonction afficheArbre est considéré comme une déclaration de variable globale alors que c'est une fonction. Après c'est normal qu'il ne trouve pas etat dans la table des symboles

  5. #5
    Membre éclairé

    Homme Profil pro
    développeur à la maison
    Inscrit en
    Septembre 2006
    Messages
    396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn et Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : développeur à la maison

    Informations forums :
    Inscription : Septembre 2006
    Messages : 396
    Billets dans le blog
    16
    Par défaut
    il fallait ajouter #include "objets.hpp"

    résolu

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

Discussions similaires

  1. Requête variable en fonction des champs disponibles
    Par hemgui dans le forum Requêtes
    Réponses: 2
    Dernier message: 30/05/2007, 14h30
  2. Réponses: 13
    Dernier message: 19/04/2007, 11h36
  3. Rajouter une case à cocher en fonction du champs séléctionné !
    Par Arkoze dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 02/03/2007, 18h55
  4. Ouverture état en fonction du champ d'un formulaire
    Par picatchou dans le forum Access
    Réponses: 1
    Dernier message: 05/10/2006, 16h24
  5. Ajouter un signe avant résultat en fonction du champ
    Par davyd dans le forum Langage SQL
    Réponses: 10
    Dernier message: 10/03/2005, 11h59

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