begin process at 2012 05 28 19:35:50
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

Débutant : Inclusion de header dans main.cpp + problème de déclaration de classe


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

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

Administrateur CodeS-SourceS
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 {


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 : 1,108 sec (3)

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