Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2074 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]Signification d'une erreur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C/C++]Signification d'une erreur

n°930858
Tango baba​r
Posté le 23-12-2004 à 12:14:41  profilanswer
 

Que signifie les erreurs ci-dessous :??:  
Je travaille sous borlandC++ 5.5.1
Error: Unresolved external 'operator >>(std::basic_istream<char, std::char_traits<char> >&, monome& )
' referenced from D:\MES DOCUMENTS\MES PROGRAMMES EN C++\PROJET INFO\POLYNOME.OBJ
Error: Unresolved external 'operator <<(std::basic_ostream<char, std::char_traits<char> >&, monome)'
 referenced from D:\MES DOCUMENTS\MES PROGRAMMES EN C++\PROJET INFO\POLYNOME.OBJ
 
c'est un projet que je dois réaliser qui concerne les polynomes à n indéterminees. Pour cela j'ai construit la classe monome ainsi que les fonction amis operator<< & operator>>. Puis j'ai construit la classe polynome et j'ai essayé de surcharger les operateurs de flux et c'est lorsque je compile qu'apparait l'erreur cité ci-dessus
 
Merci de votre aide  :p


Message édité par Tango babar le 23-12-2004 à 13:38:42

---------------
Le sourire est une invention britannique. Pour être précis, les Anglais l'ont rapporté de leur campagne japonaise
mood
Publicité
Posté le 23-12-2004 à 12:14:41  profilanswer
 

n°930899
suizokukan
Posté le 23-12-2004 à 13:00:28  profilanswer
 

 Bonjour,
  Le linker n'a pas pris en compte ta surcharge des opérateurs << et >>. Poste ton code (1/ comment est-ce que tu surcharges 2/ comment est-ce que tu utilises ces opérateurs) pour que l'on puisse t'aider.

n°930920
Tango baba​r
Posté le 23-12-2004 à 13:16:37  profilanswer
 

Je vous prie de m'excuser pour ne pas vous avoir dit bonjour au début de mon message
Voila la surcharge pour la class monome

Code :
  1. ostream& operator<<(ostream& o, monome m ){
  2. if(!m.est_nul()){
  3. o<<m.coef()<<'.';
  4. for(int k=0;k<m.nbv();k++){
  5. o<<'X'<<k+1<<'^'<<m.buffer[k]<<'.';
  6. };};
  7. return o;
  8. };
  9. istream& operator>>(istream& i, monome& m){
  10. cout<<"quel est le coefficient du monome : ";
  11. i>>m.a;
  12. cout<<"quel est le nombre d'indeterminees : ";
  13. i>>m.n;
  14. if(m.n<0 || m.n>MAX_IND){
  15. cout<<"veuillez entrer une valeur comprise entre 0 et "<<MAX_IND<<" : "<<"\n";
  16. i>>m.n;
  17. };
  18. for(int k=0;k<m.n;k++){
  19. cout<<"quel est le degre de votre "<<k+1<<"eme indeterminee : ";
  20. i>>m.buffer[k];
  21.  if(m.buffer[k]<0){
  22.  cout<<"entrez une valeur positive pour le degre : ";
  23.  i>>m.buffer[k];};
  24. };
  25. return i;
  26. };


 
et voici celui pour la classe polynome
//polynome.h

Code :
  1. class polynome{
  2. monome buffer[MAX];
  3. int l;
  4. public:
  5. ...
  6. friend ostream& operator<<(ostream& o, polynome p);
  7. friend istream& operator>>(istream& i, polynome& p);
  8. };


 
//polynome.cpp

Code :
  1. ostream& operator<<(ostream& o, polynome p){
  2. if(!p.est_vide()){
  3. for(int k=0;k<p.longueur()-1;k++){
  4. o<<p.buffer[k]<<"+";
  5. };
  6. o<<p.buffer[p.longueur()-1];
  7. };
  8. return o;
  9. };
  10. istream& operator>>(istream& i, polynome& p){
  11. cout<<"de combien de monome(s) est constitué votre polynome ? ";
  12. i>>p.l;
  13. if(p.l<0 || p.l>MAX){
  14. cout<<"veuillez entrer une valeur comprise entre 0 et "<<MAX<<" : "<<"\n";
  15. i>>p.l;};
  16. for(int k=0;k<p.l;k++){
  17. cout<<"entrez votre "<<k+1<<"eme monome ";
  18. i>>p.buffer[k];};
  19. return i;
  20. };
  21. void main(){
  22. polynome p;
  23. cin>>p;
  24. cout<<p;
  25. };


Je vous remercie d'avance


Message édité par Tango babar le 23-12-2004 à 13:41:00

---------------
Le sourire est une invention britannique. Pour être précis, les Anglais l'ont rapporté de leur campagne japonaise
n°930927
suizokukan
Posté le 23-12-2004 à 13:27:24  profilanswer
 

 Avant toutes choses, dépêche toi de mettre ton code entre des balises avant que ça ne rale...
 
1/ édite ton message - cherche l'icône dans cette fenêtre qui se trouve à côté de 'Posté le 23-12-2004 à 13:16:37' -
2/ une fois dans la fenêtre d'édition sélectionne ton code
3/ utilise l'icône C/C++ qui mettra ta sélection entre deux balises.
 
et surtout apprends à INDENTER ton code svp !

n°930938
suizokukan
Posté le 23-12-2004 à 13:39:22  profilanswer
 

 Ton code compile correctement (pour le savoir, j'ai tout mis dans un seul fichier et j'ai ajouté des définitions bidon pour les méthodes que tu n'avais pas données).
 
  Mais :
1/ écris int main(void) plutôt que void main(void) et renvoie une valeur qui indique si un problème est apparu ou pas (EXIT_SUCCESS ou EXIT_FAILURE)
2/ ton erreur n'est pas dans ton code mais dans la manière dont tu intégres tes différents fichiers. Est-ce que tu as créé un projet (genre Project -> New ...) et si oui, comment ?

n°930943
Tango baba​r
Posté le 23-12-2004 à 13:47:39  profilanswer
 

Non je n'est pas créer un projet.J'ai juste mis les fichiers
monome.h polynome.h monome.cpp polynome.cpp dans un meme dossier et tous les codes je l'ai fait avec le bloc-note.
 
Dans l'entete de polynome.h, j'ai juste mis  

Code :
  1. #include "monome.h"
  2. #include<iostream.h>


 
et dans celui de polynome.cpp

Code :
  1. #include "polynome.h"


Message édité par Tango babar le 23-12-2004 à 13:48:16

---------------
Le sourire est une invention britannique. Pour être précis, les Anglais l'ont rapporté de leur campagne japonaise
n°930946
suizokukan
Posté le 23-12-2004 à 13:53:21  profilanswer
 

 Ok, c'est pour ça que ça ne fonctionne pas !
   
  Il FAUT que tu crées un projet dans lequel tu placeras polynome.cpp et monome.cpp. Ainsi le linker utiliseras ces deux fichiers au lieu de seulement utiliser polynome.cpp comme il l'a fait jusqu'à présent.
  Et puisqu'on en est aux conseils :
  1/ n'écris pas #include <iostream.h> mais #include <iostream>
  2/ place les définitions de polynome dans polynome.cpp/.h et celles de monome dans monome.cpp/.h et crée en plus un autre fichier dans lequel tu placeras ton main. Ton projet auras ainsi trois fichiers différents et sera plus lisible.

n°931142
Tango baba​r
Posté le 23-12-2004 à 18:58:32  profilanswer
 

Je n'ai plus l'erreur de depart. Je dois juste regler la fonction d'affichage.
 
Grand merci à vous suizokukan.


---------------
Le sourire est une invention britannique. Pour être précis, les Anglais l'ont rapporté de leur campagne japonaise

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [C/C++]Signification d'une erreur

 

Sujets relatifs
[C++][Qt]Erreur: ISO C++ forbids defining types ...PhpMyAdmin - Erreur 2013
erreur de compil bizarreErreur de segmentation - appel strsep
[C / GTK] erreur avec G_TYPE_CHECK_INSTANCEServlet - erreur sur l'import
Erreur "Type de données incompatible dans l'expression du ..."[RESOLU]Erreur Installation Oracle --> j'ai besoin d'aide!!
[C] Erreur d'arrondi en float[ASP] Erreur dans le code
Plus de sujets relatifs à : [C/C++]Signification d'une erreur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR