Bonjour,
J'ai un problème avec une Classe C++, voici le tracé des erreurs :
$ make
g++ -c -O4 -W -g -Wall -o Nuage.o Nuage.cpp
Nuage.cpp:4: ISO C++ forbids defining types within return type
Nuage.cpp:4: `int' is not an aggregate type
Nuage.cpp:4: semicolon missing after declaration of `class Nuage'
Nuage.cpp: In function `int Nuage()':
Nuage.cpp:5: invalid use of `this' in non-member function
...// mêmes erreurs à toutes les lignes entre 5 et 12
Nuage.cpp:12: invalid use of `this' in non-member function
Nuage.cpp:13: warning: no return statement in function returning non-void
et voici le programme hpp :
#ifndef NUAGE_HPP
#define NUAGE_HPP
#include <iostream>
#include <stdlib.h>
#include <sstream>
using namespace std;
/* La classe qui va gérer notre nuage */
class Nuage {
/* Les variables sont mises en privé:
taille: le nombre de points du nuage.
minX, minY, minZ: les minimums sur x y et z.
maxX, maxY, maxZ: les maximums sur x y et z.
myNuage: le tableau contenant les points du nuage.
*/
private:
int taille;
float minX;
float minY;
float minZ;
float maxX;
float maxY;
float maxZ;
float* myNuage;
/* Les constructeurs, méthodes et fonctions sont mis en publique. */
public:
/* Constructeur simple, il crée un nuage vide. */
Nuage();
/* Destructeur */
~Nuage(){ free(myNuage); }
/* Renvoie la valeur du point à l'indice i du tableau. */
void getPoint(int i, float p[3]);
/* Lit le Nuage à partir d'un fichier. */
void readNuage(char* fileName);
}
#endif
et voici le cpp :
#include "Nuage.hpp"
/* Constructeurs: */
Nuage::Nuage(){ // ligne 4
this->taille = 0;
this->minX = 0.0;
this->minY = 0.0;
this->minZ = 0.0;
this->maxX = 0.0;
this->maxY = 0.0;
this->maxZ = 0.0;
this->myNuage = (float*)calloc(0, sizeof(float));
}
/* Méthodes et fonctions: */
void Nuage::getPoint(int i, float p[3]){
p[0] = this->myNuage[i*3];
p[1] = this->myNuage[i*3 + 1];
p[2] = this->myNuage[i*3 + 2];
}
void Nuage::readNuage(char* fileName){
FILE* ifp = fopen(fileName,"r");
...
fclose(ifp);
}
Si quelqu'un avait une idée, merci.
(NB: j'ai une classe équivalente au nom et nombre de variables private prés et qui marche sans aucun problème.)
ToNiO