Accueil > Forum > > > > Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe
Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe
dimanche 17 mai 2009 à 19:35:29 |
Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe

goddez
|
Bonjour à tous :), Je rencontre un problème plutôt spéciale depuis 2 jours et je n'arrive pas à mettre le doigt sur ce qui n'est pas correct. Je déclare une classe dans un .h comme d'habitude, je défini certaines partie de la classe dans un .cpp et j'inclu le .h dans main.cpp. Jusque là tout devrait bien aller. J'écris un programme pour un exercice d'un cour. voici l'explication de l'exercice plus le code que j'ai écris. Note: J'ai fais une recherche sur un problème semble mais je n'ai rien trouvé qui se rapproche du miens. /*
Exercice 2 (5 points) Une compagnie d'autobus vient d'acheter un ordinateur pour son nouveau système de réservations informatisé. Cette compagnie possède 2 autobus; ces autobus transportent 2000 passagers par année vers New York. Le voyage aller et retour est de 3 jours.
Écrivez un programme qui attribue des sièges aux passagers lors d'un voyage, en tenant compte que chaque autobus transporte soit des fumeurs, soit des non-fumeurs.
Le programme doit afficher le menu suivant :
* Appuyez sur 1 pour non-fumeurs * Appuyez sur 2 pour fumeurs
Si la réponse est 1, le programme attribue un siège dans un autobus de non-fumeurs (1 à 40). Dans le cas contraire, il attribue un siège dans un autobus de fumeurs (1 à 40). De plus, le programme devrait afficher à l'écran un document de voyage qui indique si le passager est dans un autobus de fumeurs ou de non-fumeurs et combien de passagers il y a dans l'autobus.
*/
/********************* main.cpp *********************/
#include "travelcManager.h"
void main(){
return 0; }
/*************************** travelcManager.h ****************************/
#ifndef TRAVELCMANAGER_H #define TRAVELCMANAGER_H
class TravelManager {
public: TravelManager(int ); ~TravelManager();
//Set void setPgrData(char *, bool, char *); //Ajout du nom du passager //et s'il est fumeur, création de la destination. //(string name, bool smoker, string destination)
//Get void displayPgrData(); void displayTravelData();
private: char *pgrName; int test; } #endif
/********************** travelcManager.cpp **********************/
#include "travelcManager.h"
TravelManager::TravelManager(int num){
test = num; pgrName = new char[12];
}
TravelManager::~TravelManager(){
if(pgrName){ pgrName = ""; } }
void TravelManager::setPgrData(char *name, bool smoker, char *destination){
} L'erreur que j'obtient avec visual C++ express 2008 est : 1>------ Build started: Project: test1, Configuration: Debug Win32 ------ 1>Compiling... 1>main.cpp 1>c:\users\portced\documents\docs\cpp\travail_trois\test1\test1\main.cpp(7)[à la ligne -> void main(){] : error C2628: 'TravelManager' followed by 'void' is illegal (did you forget a ';'?) 1>c:\users\portced\documents\docs\cpp\travail_trois\test1\test1\main.cpp(7)[à la ligne -> void main(){] : error C3874: return type of 'main' should be 'int' instead of 'TravelManager' 1>Build log was saved at "file://c:\Users\PortCed\Documents\Docs\Cpp\travail_trois\test1\test1\Debug\BuildLog.htm" 1>test1 - 2 error(s), 0 warning(s) ========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== L'erreur que j'obtient avec Bordland C++ Builder 6.0(oui c'est vieux mais c'est ce que je dois utiliser pour les exercices) est: [C++ Warning] main.cpp(8): W8058 Cannot create pre-compiled header: header incomplete [C++ Error] main.cpp(8)[à la ligne -> void main(){]: E2176 Too many types in declaration [C++ Error] main.cpp(8)[à la ligne -> void main(){]: E2111 Type 'TravelManager' may not be defined here Avec l'erreur de visual studio, j'ai un indice me disant que la déclaration de la classe ou son inclusion ne se fait pas correctement, mais je ne comprend vraiment pas ce qui pourrait causer ce problème. Merci à l'avance pour votre aide.
|
|
dimanche 17 mai 2009 à 20:51:03 |
Re : Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe

CptPingu
|
Réponse acceptée !
A vue d'oeil: - int main() et pas void main(). - Il faut un ";" après une accolade quand tu déclares une classe.
Quelques pratiques: - On laisse le nom de arguments dans les signatures de la classe, ça permet de documenter le code (surtout si tu fais du doxygen après).
Remarques facultatives: - .h/.cpp => préfère .hh/.cc ou .hpp/.cpp (Mais ça reste une bonne pratique peu connue, que je ne me permettrais pas d'imposer). - Les accolades alignées verticalement sont plus lisibles (question de goût).
|
|
dimanche 17 mai 2009 à 23:40:53 |
Re : Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe

goddez
|
Merci bcp pour ton aide. C'était vraiment ridicule de ma part cet oubli de ";". Pour main je croyais que retour de donné ou pas de retour du tout n'y changeait rien. Merci pour le hint! :) En ce qui concerne tes conseils de pratiques je vais garder ça en tête. Pour tes remarques sur la terminaison d'un fichier, c'est une bonne idée je trouve, surtout pour différencier le c du c++.
|
|
Cette discussion est classée dans : void, cpp, main, test1, travelmanager
Répondre à ce message
Sujets en rapport avec ce message
Erreur de compilation ... [ par Tidam ]
RE bijour a tous ! Voila quand je compil sous linux ma source, j'obtient les erreurs suivante : main.cpp:239: void value not ignored as it ought to be
cpp template et map [ par sebome ]
Bonjour à tous.Je me suis lancé a faire un petit programme pour apprendre a me servir des map.J'ai essayé aussi de faire des fonctions template pour a
Probleme avec winsock [ par ratala ]
Bonjour, J'éssaye de travailler avec les winsocks mais à chaque fois que je compile, j'ai ce message d'erreur :.objs\main.o:main.cpp:(.text+0x649): un
code de cryptage,débutant [ par RoseX ]
voila j'ai un probleme, je créé un logiciel ayant pour but de crypter un message et de le décrypter a demande. je vais dabors vous exposer mon code en
Erreur sous visual [ par alphaone ]
Je tante de compiler mon programme sous visual, avant je le fessait avec mingw et cella marché trés bien, voila mes erreurs:1>.\main.cpp(375) : error
Mais comment utiliser wxWidgets avec Code::Blocks et VC++ 7.1 toolkit ??!!! [ par zippro4012 ]
Je programme en C++ dans l'éditeur Code::Blocks, et compile avec VC++ 7.1 toolkit.Il est relativement ennuyeux d'utiliser les APIs Windows pour créer
Template C++ [ par luhtor ]
Je suis confronté à un petit problème. Quelqu'un saurait-il pourquoi le code suivant ne compile pas ? (j'utilise VC express, mais c'est pas important)
Problème classe et main : argument does not match [ par RS8 ]
Bonjour,je fais actuellement de 'lOpenGL.Je voudrais avoir deux fichiers : drawing.cpp et main.cppDans le main.cpp il n'y a que le main et dans drawin
Erreur de compilation Helloworld sous eclipse galileo [ par dams13120 ]
Bonjour, Je connais un peu le C++. Je voulais utiliser l'IDE Eclipse dans le but de cross-compiler un projet sur une board. Seulement en essayant seul
Les listes chaînées [ par paras00 ]
Bonjour ; j'aimerai bien ke vous m'aidez à resoudre une erreur dans mon programme [^^sad1] [code=cpp] #include typedef void* T ; class element {
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|