[C++ Bulder ] : Impossible de créer l'en-tête

Fermé
titou - 3 juin 2004 à 13:59
 titou - 4 juin 2004 à 16:47
[C++ Avertissement] VEHICULE.CPP(14): W8058 Impossible de créer l'en-tête pré-compilé : code dans l'en-tête
qu'est ce que ce type d'erreur ??? :-/
A voir également:
  • [C++ Bulder ] : Impossible de créer l'en-tête
  • Gpt bulder - Guide

13 réponses

Salut Titou, peux-tu nous envoyer le debut de ton fichier vehicule.cpp s'il te plait (tous les #include du moins)

merci
0
blurk Messages postés 486 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 15 mars 2009 160
3 juin 2004 à 14:26
salut
ca veut dire qu'il y a du code dans vehicule.h (ou.hpp?)
alors qu'il ne devrait y'avoir que les prototypes des fonctions
propres à vehicule.c
le code doit être dans Vehicule.C et pas ailleurs

explication

- contenu d'un fichier .H:

void mafonction();

contenu d'un fichier .CPP ( ou.C )

void mafonction()
{
// ecrire le code ici
}

Il est fini le temps où les compilateurs permettaient
d'écrire du code dans un header, ou bien de faire #include "monfichier.c" au lieu de "monfichier.h"
Les compilateurs c et c++ sont de plus en plus sévères, et c'est tant mieux, ça permet de faire du code plus facile à exporter. On est sûr de faire un travail plus propre.
bienvenue dans la programmation structurée!

cordialement
0
Le .h
******************************************************
#define __VEHICULE_H_

class Atelier;
class Entretien;


class Vehicule
{

public:
Vehicule();
~Vehicule();

void init(int nbKmActuel,int mesEntretiens, char numImma[8]);

int getNbKmActuel();
int getUnEntretien();
int getNbEntretiens();
void ajouteEntretien();

Atelier* LesVehicule;
Entretien** LesEntretients;

protected:




private:

char numImma[8] ;
int nbKmActuel ;
int mesEntretiens ;


};

#endif // #define __VEHICULE_H_
******************************************************

Le .cpp
******************************************************
// --------------------------------------------------------------------
// Vehicule.cpp : source file of class Vehicule
// --------------------------------------------------------------------

#include "Vehicule.h"
#include "Vehicule.h"

#include "Atelier.h"
#include "Entretien.h"

/*Constructeur destructeur*/

Vehicule::Vehicule()
{
char plaque[8];
int nbKm;
int Entretient;
cout << "Saisir les informations necessaire a la creation d un vehicule : " << endl;
cout << "Num plaque : " ;
cin >> plaque;
cout << "Nombre Km : " ;
cin >> nbKm;
// Pour les entretients c'est une collection d'entretient.
init(nbKm,1,plaque);

};

Vehicule::~Vehicule()
{

}
/*------------------------*/
void Vehicule::init(int nbKmActuel,int mesEntretiens, char numImma[8])
{

}

int Vehicule::getNbKmActuel()
{
return 0;
}

int Vehicule::getUnEntretien()
{
return 1;
}

int Vehicule::getNbEntretiens()
{
return 0;
}

void Vehicule::ajouteEntretien()
{

}



******************************************************

Mercide vos reponse
0
Re salut

Tu n'as pas besoin de mettre un ";" après ton constructeur dans ton .cpp

Pom
0
Salut , commence ton .h par
#ifndef _VEHICULE_H (rajoute deja cette ligne, ca evite de definir deux fois la variable)
#define _VEHICULE_H

et tout à la fin
#endif

Pourquoi fais-tu deux fois #include "Vehicule.h" dans ton .cpp ?

pom
0

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

Posez votre question
Salut encore une fois

Je viens de voir autre chose encore
as-tu bien mis
#include<iostream>
using std::cout;
using std::cin;
using std::endl;

ou as-tu fais exprès de ne pas nous les envoyer ?

pom
0
Ok Merci de vos reponse rapide.

J'ai generer le code c++ depuis windesignor sur lequelle j'ai effectuer la modelisation UML (diagramme de classe), de ce fait certaine ligne de code se sont rajouté.

voila le debut du cpp
***********************************************
#include <iostream.h>
#include <conio.h>
#include <stdio.h>

#include "Vehicule.cpp"
#include "4_Roues.cpp"
#include "2_Roues.cpp"
#include "Entretien.cpp"
#include "EntretienType.cpp"
#include "Atelier.cpp"

main ()
{

Roues4 r1;
cout << r1.getNbKmActuel() << endl;

;

getch ();
}
************************

Je vasi regarder les notes que vous m'avez fournies
0
Je n'arrive pas a me separer de ce probleme .... :-//
0
salut

je ne connais pas la fct getch(); que fait-elle. D'habitude, je fais
int main()
{
blabla
return 0;
}
Ca ne réponds surement pas à ton pb.
Que te dit le compilateur maintenant ?

bonne soirée
pom
0
getch (); = permet de faire une pausse jusqu'a ce que la personne appui sur une touche pour continuer le deroulement du programme.

Le compilateur me repond toujours le meme avertissement .... snif !!!!
0
as-tu aussi retirer le ; après ton constructeur dans le .cpp et as-tu retirer le seconde #include "Vehicule.h" ?
0
normalement, dans le .cpp on ne fait que des #include "blalba.h" et non "blabla.cpp". Dans ton makefile tu compile les .cpp qui eux appellent les .h

A propos, ton makefile est-il bien fait ? prend-il tous les fichiers en compte ?
0
Salut, tu as un warning ou bien ca ne compile pas du tout ?
as-tu des fonctions inline ?

pom
0
c'est jsute des warning, j'ai matter avec mes prof ce matin et c'est windesign qui a ecrit du code a la con j'ai donc changer de logiciel de modelisation uml pour genrer mon code
0
Ok, mais ca marche maintenant ?
ton .cpp ne m'a pas l'air très grand ni meme tes classes. Pourquoi ne fais-tu pas tout à la main ?
(mais peut-etre que tu nous a montré qu'une partie de ton prgm...)
0
oui c'est juste une partie programme :-)
Le code d'avant fonctionne mais j'ai toujours la meme erreur d'entête !!!
Du coup j'ai pris un nouveau logiciel de modelisation uml
CLASSBUILDER mais toujours ce probleme d'entête mais au moin sa compile tout le projet et sa focntionne bien.

presenter ici http://uml.developpez.com/outils/

qui focntionne tres bien et du 1er coup, ce qui est mieux lolll
De plus c'est un tout en un car ds ce logiciel on peut integrer les partie de code propre a chaque methode, ce qui permet de garder toujours une vue au niveau analyse du programme objet.

je ne suis qu'au debut de la conception mais pour le moment sa ce passe bien....
Merci de ton aide
0