RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 [DEV C++] Compiler un Classe

Forum : IDE C++
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ IDE C++

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET NON RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGES : [1] [2]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM IDE C++

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
bolo
Nouveau membre
Inscrit : 01/05/2004
Messages : 11
Message
#43111
Posté le 17/11/04 à 15:26
Bonjour

lorsque je tante de compiller ma clase j'ai ces message d'erreur

[quote]C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0xb4):devoir1.cpp: undefined reference to `point::point(int, int)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x158):devoir1.cpp: undefined reference to `point::point(int, int)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x1a7):devoir1.cpp: undefined reference to `rectangle::rectangle(point const &, point const &)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x1c4):devoir1.cpp: undefined reference to `rectangle::~rectangle(void)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x264):devoir1.cpp: undefined reference to `rectangle::diagonale(void)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x2ac):devoir1.cpp: undefined reference to `point::~point(void)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x2c5):devoir1.cpp: undefined reference to `point::~point(void)'
C:\DOCUME~1\BOLLO~1.BOL\LOCALS~1\Temp\ccC0aaaa.o(.text+0x2fe):devoir1.cpp: undefined reference to `rectangle::~rectangle(void)[/quote]

merci d'avance

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

eVias
Membre du club
Avatar de eVias
Inscrit : 25/01/2004
Messages : 1008
Message
#43113
Posté le 17/11/04 à 15:52
Salut,
es-tu sur de bien avoir spécifier le #include "devoir1.h" qui inclus dès lors le fichier en-tête de la classe, donc le fichier de déclaration ?

Car apparemment il ne reconnaît pas les constructeurs et destructeurs de tes classes, alros faut voir de ce côté :)

Ciao Smiley
__________________________
Grégory S.

eVias Web & Software Solutions.

Développement Web et logiciel en tout genre et Open Source.

FOSDEM 2008. Venez -y nombreux !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

bolo
Nouveau membre
Inscrit : 01/05/2004
Messages : 11
Message
#43115
Posté le 17/11/04 à 16:02
voila mes fichiers
devoir1.cpp
rectangle.h
rectangle.cpp
point.h
point.cpp

devoi1.cpp n'est pas une classe mais le fichier qui contient ma fonction main

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6572
Message
#43126
Posté le 17/11/04 à 17:19
Il faut mettre :

#include "rectangle.h" #include "point.h"


En début du devoir1.cpp pour qu'il connaisse les classes rectangle et point.
__________________________
Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
N'oubliez pas le Tag [Résolu]Image.

Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

bolo
Nouveau membre
Inscrit : 01/05/2004
Messages : 11
Message
#43210
Posté le 18/11/04 à 11:17
dans devoir1.cpp
j'ai les includes suivant
#include "rectangle.h"

Dans rectangle
#include "point.h"

j'ai fais la modifs
maitenant j'ai ces messages d'erreus
[quote]
redefinition of `class point'
revious definition here
warning: `operator <<(ostream &, const point &)' is already a friend of class `point'
warning: previous friend declaration of `operator <<(ostream &, const point &)'



[/quote]

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6572
Message
#43226
Posté le 18/11/04 à 14:20
Quand on fait un fichier .H, mettons truc.h, il faut le commencer ainsi :
[quote]#ifndef TRUC_H
#define TRUC_H[/quote]
puis finir ainsi :
[quote]#endif[/quote]

La raison est que lorsqu'on fait un #include "truc.h", le préprocesseur copie le fichier truc.h à l'emplacement du #include et donc, si on a plusieurs .h imbriqués, il arrive que la déclaration de classe se retrouve en double.
Avec ce que je viens de te donner, si la classeest déjà définie, elle ne le serra pas une seconde fois.

Si tu as mis #include "point.h" dans le rectangle.cpp et non dans le rectangle.h il faut que tu l'inclues (point.h) dans le devoir1.cpp afin que celui ci connaisse la classe point.
Explications : si le include point.h est dans le rectangle.h, comme luim même est inclus dans le devoir1.cpp, ainsi les deux .h seront dans le devoir1.cpp, si le point.h est inclus dans le rectangle.cpp, il faut le rajouter dans le devoir1.cpp pour qu'il soit connu.
Car les rectangle.cpp et devoir1.cpp sont deux modules différents.

Voila, voilou, ce soir je vais faire une FAQ sur les include.
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

bolo
Nouveau membre
Inscrit : 01/05/2004
Messages : 11
Message
#43234
Posté le 18/11/04 à 15:50
Alors dans ma fichier "rectangle.h" j'inclus déja "point.h"

dans le fichier devoir1.cpp
j'ai fai ca
[code]
#include <iostream.h>
#include <stdlib.h>
#ifndef "rectangle.h"
#define "rectangle.h"[/code]

voila ce que j'ai
[quote]
warning: `#ifndef' argument starts with punctuation
invalid macro name
unterminated `#if' conditional
[/quote]

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6572
Message
#43242
Posté le 18/11/04 à 16:39
Il ne faut pas mettre les #ifndef dans les .cpp mais dans les .h
De plus, il ne faut pas faire #define "truc.h" mais :
[quote]#define TRUC_H[/quote]
Ainsi tu définis une une variable (pas au sens strict du terme) qui s'appelle TRUC_H et qui ne sert qu'à dire que le fichier tru.h a déjà été inclus.
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

bolo
Nouveau membre
Inscrit : 01/05/2004
Messages : 11
Message
#43245
Posté le 18/11/04 à 16:48
Alors dans rectangle h j'ai fais ca
[code]
#ifndef rectangle_H
#define rectangle_H
#include <iostream.h>
#include "point.h"
#include "math.h"[/code]

et dans point.h
[code]#ifndef point_H
#define point_H
#include <iostream.h>[/code]

quand je lance devoir1
j'ai ca
[quote]
4 d:\bolo\licence\mop\devoir1\rectangle.h
from d:\bolo\licence\mop\devoir1\devoir1.cpp:3:
1 d:\bolo\licence\mop\devoir1\point.h
unterminated `#if' conditional
3 d:\bolo\licence\mop\devoir1\devoir1.cpp
d:\bolo\licence\mop\devoir1\rectangle.h:1: unterminated `#if' conditional


[/quote]

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

pac
Co-Administrateur
Superviseur :
- Méthodologie.
Modérateur :
- Delphi
Chef de projet(s) :
- Jeu Awalé
- EcoSystem
- MySudoku

Avatar de pac
Inscrit : 08/04/2004
Messages : 6572
Message
#43248
Posté le 18/11/04 à 17:28
Je vais te tapper sur les doigts, tu n'as pas lu tout ce que je t'ai expliqué. Papa, va pas être content.
[quote] Quand on fait un fichier .H, mettons truc.h, il faut le commencer ainsi :

#ifndef TRUC_H
#define TRUC_H

puis finir ainsi :

#endif[/quote]

Non je déconne, normalement avec tout ça, ça doit marcher, si ce n'est pas le cas, tu sais ou t'adresser. :wink:
__________________________
Lisez la [url=http://www.forum.moteurprog.com/bavardages/forum-msg-22857-1.htm]charte[/url], pensez à regarder la [url=http://www.forum.moteurprog.com/FAQ/FAQ.php]FAQ[/url], les [url=http://www.moteurprog.com/Tutoriaux/]tutoriaux[/url], l'[url=http://www.moteurprog.com/Annuaire/]annuaire[/url] et faites une [url=http://www.forum.moteurprog.com/Rechercher/Index.php]recherche[/url] dans les forums.
N'oubliez pas le Tag [b][Résolu][/b][img]http://www.ressources.moteurprog.com//Ressources/Images/Forum/Resolu.gif[/img].

Initiez-vous à Delphi avec [url=http://www.turboexplorer.com/delphi]Turbo Delphi Explorer[/url], au C ou au C++ avec [url=http://www.codeblocks.org]Code::Blocks[/url] et C# avec [url=http://www.microsoft.com/france/msdn/vstudio/express/vcsharp/telechargez.mspx]Visual C# 2005 Express[/url].

ERREUR BBCODE SUR CE MESSAGE :
- La valeur de la balise "quote" n'est pas correcte !

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM IDE C++



    PAGES : [1] [2]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.