erreur (débile) de compilation

erreur (débile) de compilation - C++ - Programmation

Marsh Posté le 10-04-2008 à 16:14:11    

j'aimerai bien un peu d'aide car là je galère sur un truc tout simple et tout débile que sont le fichier cpp et hpp suivant :
 

Code :
  1. #ifndef point_H
  2. #define point_H
  3. class point{
  4.  
  5.   // ------------------------------
  6.   // private variable and function
  7.   // ------------------------------
  8.   private :
  9.      // variable
  10.      float x; // x coord of the point
  11.      float y; // y coord of the point
  12.    float value; // value of the point
  13.   // ----------------------------
  14.   // public function and variable
  15.   // ----------------------------
  16.   public :
  17.     // variable
  18.      // no public variable
  19.   // function  
  20.   float getX(void); // return X
  21.   float getY(void); // return Y
  22.   float getValue(void); // return value
  23.   void putX(float); // put X
  24.   void putY(float); // put Y
  25.   void putValue(float); // put value
  26.   // constructor with no parameters
  27.   point();
  28.   // constructor which take two parameters and an optional third. by default the third = 0
  29.     point(float,float);
  30.   // constructor which take three parameters
  31.   point(float,float,float);
  32. }
  33. #endif


 
et le cpp
 

Code :
  1. #include "point.hpp"
  2. // return X
  3. float point::getX(void){
  4.   // return X  
  5.   return x;
  6. }
  7. // return Y
  8. float point::getY(void){
  9.   // return X  
  10.   return this.y;
  11. }
  12. // return value
  13. float point::getValue(void){
  14.   // return value
  15.    return this.value;
  16. }
  17. // set X
  18. void point::putX(float maValeur){
  19.  // set x
  20.  x = maValeur;
  21. }
  22. // set Y
  23. void point::putY(float maValeur){
  24.  // set y
  25.  y = maValeur;
  26. }
  27. // set value
  28. void point::putValue(float maValeur){
  29.  // set y
  30.  value = maValeur;
  31. }
  32. // constructor with no parameters
  33. point::point(){
  34. // by default all at 0     
  35. putX(0);
  36. putY(0);
  37. putValue(0);   
  38. }
  39. // constructor which take two parameters and an optional third. by default the third = 0
  40. point::point(float monX, float monY){
  41.    // set X and Y
  42.    putX(monX);
  43.    putY(monY);
  44.    // by default third parameters at zero
  45.    putValue(0);
  46. }
  47. // constructor which take three parameters
  48. point::point(float monX, float monY, float maValeur){
  49.    // set X and Y
  50.    putX(monX);
  51.    putY(monY);
  52.    putValue(maValeur);    
  53. }


 
et il me sort des erreurs qui sont pour moi pas logique du tout :
 

Code :
  1. Compiler: Default compiler
  2. Building Makefile: "D:\stage\3D\OpenGl\Affichage2D\Makefile.win"
  3. Executing  make...
  4. make.exe -f "D:\stage\3D\OpenGl\Affichage2D\Makefile.win" all
  5. g++.exe -c class/point.cpp -o class/point.o -I"C:/utilitaires/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"  -I"C:/utilitaires/Dev-Cpp/include/c++/3.4.2/backward"  -I"C:/utilitaires/Dev-Cpp/include/c++/3.4.2/mingw32"  -I"C:/utilitaires/Dev-Cpp/include/c++/3.4.2"  -I"C:/utilitaires/Dev-Cpp/include" 
  6. class/point.cpp:4: error: new types may not be defined in a return type
  7. class/point.cpp:4: error: two or more data types in declaration of `getX'
  8. class/point.cpp:4: error: prototype for `point point::getX()' does not match any in class `point'
  9. class/point.hpp:23: error: candidate is: float point::getX()
  10. class/point.cpp:4: error: `point point::getX()' and `float point::getX()' cannot be overloaded
  11. class/point.cpp: In member function `point point::getX()':
  12. class/point.cpp:6: error: conversion from `float' to non-scalar type `point' requested
  13. class/point.cpp: In member function `float point::getY()':
  14. class/point.cpp:12: error: `y' is not a type
  15. class/point.cpp:12: error: request for member of non-aggregate type before ';' token
  16. class/point.cpp: In member function `float point::getValue()':
  17. class/point.cpp:18: error: `value' is not a type
  18. class/point.cpp:18: error: request for member of non-aggregate type before ';' token
  19. make.exe: *** [class/point.o] Error 1
  20. Execution terminated


   
moi je veux bien qu'il me dise tout ça (remarque je n'ai pas le choix) mais j'ai bien déclaré mes fonctions non ?

Reply

Marsh Posté le 10-04-2008 à 16:14:11   

Reply

Marsh Posté le 10-04-2008 à 16:20:05    

Une définition de classe se termine par un point-virgule :
class foobar {
   ...
};
 
Et "this" est un pointeur sur l'instance courante, c'est donc "this->" ou "(*this)", mais pas "this." directement.

Reply

Marsh Posté le 10-04-2008 à 16:23:18    

en effet c'était un simple ;
 
j'adore le c++ et le compilateur qui indique l'erreur à la bonne place. pire que l'ada ce truc.

Reply

Marsh Posté le 10-04-2008 à 16:30:41    

g++ > 4.x dis qu'il manque un ; de tête

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed