begin process at 2012 05 29 10:09:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

Iso C++ forbids list with no type


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Iso C++ forbids list with no type

lundi 21 décembre 2009 à 17:59:28 | Iso C++ forbids list with no type

Abderrahmaine




Salut tout le monde, Je suis confus pourquoi list<Case*> EltObsatcle; dans grille.h a fonctionné et dans la classe Itineraire.h quand je met list<Case*> chemin ; elle ne fonctionne pas et m'indique 14 C:\Documents and ISO C++ forbids declaration of `list' with no type .
Mon travail est sur http://www.4shared.com/file/178130308/7ad56c33/Robotss.html

merci d'avance !!
lundi 21 décembre 2009 à 18:49:27 | Re : Iso C++ forbids list with no type

CptPingu

Administrateur CodeS-SourceS
Sans regarder ton projet, ça ressemble à un oubli d'include.

Vérifie que tu as bien #include <list>
lundi 21 décembre 2009 à 19:01:58 | Re : Iso C++ forbids list with no type

CptPingu

Administrateur CodeS-SourceS
Après avoir regardé ton code, c'est une horreur !

Alors:
* Pas de using namespace std, et surtout pas dans un .h !!!
* Si tu fais des forward declaration, alors tu es tenu de faire un include dans le .cpp correspondant.
* Tu passes tout par copie, même les tableaux, tu vas avoir de gros problèmes de performance.
* conio.h => Tu as vraiment besoin de ça ? Ca m'empêche de compiler chez moi (Je suis sous Linux).
* C'est surement une erreur de syntaxe, parce que je ne vois pas ce que tu essais de faire avec: "list<Case*> ::EltObsatcle(){};"

En retirant les conio.h, j'arrive à diminuer les erreurs à


Grille.cpp: In constructor &#8216;Grille::Grille()&#8217;:
Grille.cpp:14: error: invalid use of incomplete type &#8216;struct Case&#8217;
Grille.h:5: error: forward declaration of &#8216;struct Case&#8217;
Grille.cpp:23: error: invalid use of incomplete type &#8216;struct Case&#8217;
Grille.h:5: error: forward declaration of &#8216;struct Case&#8217;
Grille.cpp:23: error: invalid use of incomplete type &#8216;struct Case&#8217;
Grille.h:5: error: forward declaration of &#8216;struct Case&#8217;
In file included from Itineraire.cpp:1:
Itineraire.h:12: error: ISO C++ forbids declaration of &#8216;list&#8217; with no type
Itineraire.h:12: error: expected &#8216;;&#8217; before &#8216;<&#8217; token
Main.cpp:4:20: error: conio.h: Aucun fichier ou dossier de ce type
In file included from Main.cpp:3:
Itineraire.h:12: error: ISO C++ forbids declaration of &#8216;EltObsatcle&#8217; with no type
Itineraire.h:12: error: cannot define member function &#8216;std::list<Case*, std::allocator<Case*> >::EltObsatcle&#8217; within &#8216;Itineraire&#8217;
In file included from Main.cpp:5:
Case.h:1: error: redefinition of &#8216;class Case&#8217;
Case.h:3: error: previous definition of &#8216;class Case&#8217;
Main.cpp: In function &#8216;int main()&#8217;:
Main.cpp:11: error: &#8216;getch&#8217; was not declared in this scope
Robot.cpp: In member function &#8216;bool Robot::presenceObstacle(int, int) const&#8217;:
Robot.cpp:32: error: invalid use of incomplete type &#8216;struct Case&#8217;
Grille.h:5: error: forward declaration of &#8216;struct Case&#8217;
Robot.cpp:32: error: invalid use of incomplete type &#8216;struct Case&#8217;
Grille.h:5: error: forward declaration of &#8216;struct Case&#8217;



La très grande majorité des erreur est dû à des "forward declaration" mal utilisées. Remplace les "class Case;", par des #include "Case.h", et applique ceci pour tout. Si ton prof t'a dit que c'était mieux en écrivant "class truc;" plutôt que #include "truc.h", il n'a pas tort, mais ce n'est à mon sens pas à la portée d'un débutant d'en comprendre la raison.

J'ai arr&#7871;té de regarder, je t'invite à corriger déjà tout cela, et si le problème persiste, poste ton code mis à jour.
lundi 21 décembre 2009 à 19:29:15 | Re : Iso C++ forbids list with no type

Abderrahmaine

Merci infiniment
ça a fonctionné dés que j'ai mis using namespace std;
Mais à propos de conio.h, n'est il pas nécessaire pour utilise getch() ??
lundi 21 décembre 2009 à 19:32:59 | Re : Iso C++ forbids list with no type

CptPingu

Administrateur CodeS-SourceS
Oublie getch(), tu es en C++. Tu as std::cin et std::getline. Si tu veux empêcher la fermeture de fenêtre, regarde les options de std::cin.
lundi 21 décembre 2009 à 19:39:17 | Re : Iso C++ forbids list with no type

Abderrahmaine





quand j'ai enlevé ce conio.h voilà redefinition of `class Case'
lundi 21 décembre 2009 à 19:44:16 | Re : Iso C++ forbids list with no type

Abderrahmaine




regarde ça http://www.4shared.com/file/178188990/1a3fc360/_2__Robotss.html
lundi 21 décembre 2009 à 20:07:18 | Re : Iso C++ forbids list with no type

Abderrahmaine





avec system("PAUSE"); ça fonctionne !!!!
lundi 21 décembre 2009 à 22:13:20 | Re : Iso C++ forbids list with no type

CptPingu

Administrateur CodeS-SourceS

quand j'ai enlevé ce conio.h voilà redefinition of `class Case'


C'est parce que tu n'as pas mise de garde le .h (le #ifndef CASE_H_ etc...)

avec system("PAUSE"); ça fonctionne !!!!


Beurk !
Ca ne fonctionnera pas partout. Sous unix notamment, ça ne fonctionnera pas. La fonction system est à éviter, tu perds la portabilité de ton programme pour une fonctionnalité discutable.
Préfère regarder du côté de cin. Quelqu'un avait posté une méthode portable pour faire cela, je te vais la rechercher.
lundi 21 décembre 2009 à 22:23:09 | Re : Iso C++ forbids list with no type

CptPingu

Administrateur CodeS-SourceS
Voilà la manière propre et portable de marquer une pause en C++.

Code C/C++ :
std::cin.ignore(1024, '\n');
std::cout << "Press enter to continue...";
std::cin.get();


On peut très bien en faire une fonction:
Exemple:
Code C/C++ :
#include <iostream>

void pause()
{
  std::cin.ignore(1024, '\n');
  std::cout << "Press enter to continue...";
  std::cin.get();
}

int main()
{
  // Code

  pause();

  return 0;
}



Cette discussion est classée dans : type, list, with, iso, forbids


Répondre à ce message

Sujets en rapport avec ce message

count et STL ?? [ par Clercq ] Re bonjour,Dans ma mission de conversion de MFC en STL je me suis confronter un un petit problemeanciennement j'avais :typedef Clist array_member_list STD::list, un problème lors de l'utilisation d'attributs de type liste dans un objet stockée dans un tableau ou vector [ par mohamed_bn ] Bonjour, J'ai une structure comme suit: [color=red]typedef struct DataFlow : public cObject { std::list receivedPackets; int numberOfPacketsNotYet Enregistrer un type string dans un fichier [ par jeromenaze ] Bonjour, J'ai un problème j'ai rechercher un peut partout mais je suis débutant en programmation donc j'aimerai des explication. Voila je veut enregis structure de donnée à attribut variable [ par nassim1987 ] Bonjour, je programme en c,et je voudrais avoir une structure de donnée avec pour chaque enregistrement un nombre nombre d'attribut variable et non f probleme avec l'affichage du contenue de sa matrice en C [ par fifiprog ] bonjour a tous voila j'ai une matrice dans laquelle je dois sauvegarder des coordonner, en réalité c'est un damier d'un jeux des loups VS agneau don Héritage et composition [ par naail ] Bonjour, j'ai un petit soucis, je vais essayer d'imager mon problème: J'ai une classe mère A et A1 et A2 qui hérite de cette classe. J'ai ensuite u très grand nombres en c++ [ par pop70 ] Bonjour, j'essaie actuellement de faire un petit programme de cryptage basé sur le principe du RSA, seulement pour cela il faut manipuler des très gra Pour programmateur [ par eva4 ] Bonjour, Tout d'abord excusez moi si le sujet n'est pas posté au bon endroit.... Je recherche une personne capable de me faire un petit programme: (


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales