Erreur sur l'utilisation d'une classe

Résolu
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008 - 14 juin 2007 à 11:35
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008 - 14 juin 2007 à 14:46
Bonjour,je suis débutant en C++,et j'ai un problème quand j'appelle une classe .
Je travaille sur VisualC++ 2005.
Quand je fais un Tab[j]  le logiciel sais  que c'est une classe Station et me donne toute les méthodes associés.


Pouvez vous m'aidez ?
 

void Aze::Choix(std::vector<Station>& Tab,int s)
{
 std::vector<Station> Traitement,Tab_Sans_Traitement;
 for(int i=0;i<6;i++) {
  for(unsigned j=0;j<Tab.size();j++) {
   Commande c=Tab[j].getCommande();                     //mon erreur
   if(c.getG(i)==0) {
    fusion1(Traitement,Tab[j]);
    CalculeTempsSansTraitement(Traitement);
   }
   else {
    fusion1 (Tab_Sans_Traitement,Tab[j]);
    CalculeTempsTraitement(Tab_Sans_Traitement);
   }
  }
 }
}

Je vous donne la classe Station

class Station
{
private: 
 double _temps;
 Commande _com;


public:
 Station();
 Station(double& t,Commande& c);
 Commande& getCommande();
 double getemps();
 void SetCommande(Commande& c);
 void Setemps(double& nb);
};

Voici mon erreur
error C2027: use of undefined type 'Station'
error C2228: left of '.getCommande' must have class/struct/union

12 réponses

lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:46
ok merci
3
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 12:05
salut,

il manque pas un include, une lib, une définition ?

Loki
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:06
Désolé j'ai oublié de mettre les include
Je prends qu'une partie de mon programme: c'est toujours la même faute

#include "stdafx.h"
#include
#include <vector>
#include "test4.h"
#include "test3.h"
#include "test.h"
using namespace std;
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:09
test3.h          //c'est là ou je défini ma classe Station
test2.h          //c'est une classe comprenant une liste de Commande
test.h            //c'est une classe Commande
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:10
en fait je te demandais surtout de vérifier que tu avais bien inclus tout ce qu'il fallait pour que ton objet soit bien reconnu. il arrive qu'il soit détecté car déclaré, mais pas compilé car non défini.

Loki
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:20
il me met          see declaration of Station
et                     'Station' : 'class' type redefinition

pourtant j'ai crée une seul fois la classe Station

Je vous met la classe

#include "stdafx.h"
#include
#include "test.h"
#include "test3.h"


using namespace std;


Station::Station()
{
 _temps=0;
 for(int i=0;i<6;i++) {
  _com.SetG(i,0);                  //G étant un tableau avec 6 entiers
 }
}


Station::Station(double& t,Commande& c)
{
 _temps=t;
 _com=c;                           //dans Commande on défini les 6entiers dans le Tableau G
}


Commande& Station::getCommande()
{
 return _com;
}


double Station::getemps()
{
 return _temps;
}


void Station::SetCommande(Commande& c)
{
 _com=c;
}


void Station::Setemps(double& nb)
{
 _temps=nb;
}
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:23
Apparamment c'est bien ce problème il n'a pas été défini ou mal.
Mais je sais pas comment corriger le problème
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:26
Je vais regarder sur les cours
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:31
type redefinition = appel multiple du fichier de définition de la classe

pour corriger, mets en haut de ton fichier :

    #ifndef LENOMQUETUVEUX
    #define LENOMQUETUVEUX

    [ici ton code...]

    #endif

Loki
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:40
je suis trop débile.


j'avais fait

#ifndef _Station_
#define _Station

#ifndef _Station_
#define _Station

au lieu de

#ifndef _Station_
#define _Station_

Merci à toi Loki6 je t'oublierai jamais
0
lenanttais44 Messages postés 34 Date d'inscription mardi 22 mai 2007 Statut Membre Dernière intervention 7 février 2008
14 juin 2007 à 14:42
Au fait on fait comment pour dire que le problème est résolu?
0
Loki6 Messages postés 286 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 27 décembre 2009 2
14 juin 2007 à 14:45
tu acceptes une réponse, y a des boutons sur chaque message.

Loki
0
Rejoignez-nous