begin process at 2012 05 29 08:26:31
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

mercredi 5 janvier 2005 à 11:40:41 | Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

GrosTony

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

mercredi 5 janvier 2005 à 11:58:54 | Re : Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

plus_plus_fab

Nuage.cpp:4: semicolon missing after declaration of `class Nuage'

c'est comme le port salut !
mercredi 5 janvier 2005 à 12:04:05 | Re : Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

ymca2003


Nuage.cpp:4: semicolon missing after declaration of `class Nuage'
=> Il manque le ; après la déclaration de la classe dans le .h
mercredi 5 janvier 2005 à 12:52:08 | Re : Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

GrosTony

Pourquoi il fait l'erreur dans le cpp alors ?
P'tain en plus j'était sur qu'il y était dans le .hpp mais ça devait être un autre hpp du projet que j'ai regardé .
En tout cas merci ça marche :d.

mercredi 5 janvier 2005 à 13:09:53 | Re : Erreur: invalid use of `this' in non-member function & `int' is not an aggregate type

ymca2003

Il fait l'erreur dans le cpp car le .h est inclus dedans et comme c'est à la fin de celui-ci, il te met l'erreur à la ligne d'après pour le compilo (le début du .cpp)

en général, quand le compilo dit qu'il y a une erreur de ; à une ligne, il faut regarder loin au dessus et remonter les .h inclus.


Cette discussion est classée dans : int, cpp, float, nuage, mynuage


Répondre à ce message

Sujets en rapport avec ce message

équation et tableaux [ par cabarrus ] je ne trouve pas l'erreur dans mon programme?#include#includeint deltanul(int);float deltainf(float);float deltasup(float);void main(void){float a,b,c dépassement capacité d'un float et int [ par golum ] result=scanf("%f",&coef); if (result !=0 && coef !=0)Voila si j'entre un nombre délirant style 9999999999999999999999999999999999999999999999999999999 arondir un float en int [ par guillaume21 ] je voudrai convertir un float en int (le cast tronque mais n'arrondi pas) sans utiliser la "bidouille" :inr i;float f;char car[6];sprintf(car,"%6.0f", Probl avec float et int [ par David2907 ] Après un calcul, comment faire pour afficher un resultat sans virgule ou un resultat avec virugule???Merci pb incrementation variable. [ par conan76 ] Voila j'ai passé l'après midi a chercher d'ou vient mon problème sans succès.je tente même de faire des affichages console avant et après incrémentati problème avec les templates [ par vecchio56 ] J'ai un petit problème en voulant compiler ceci (avec visual C++ 6): ////////////////////////////////////// Truc.htemplate class Truc{public: Truc(in fonction et matrice [ par herve_blondel ] bonjour a tous.je suis un debutant en C++ et j'aimerais ecrire un fonction qui prend en argument une matrice et me retourne une matrice(je sais ce que pourquoi ca marche pas :'( [ par xboxut ] salut j ai un probleme avec une fonction pour initialiser des particules,pouvez vous me dire pourquoi il ne marche pas et comment le faire marcher#inc Problème d'entrée (cin >>) dans un tableau de float [ par Oeil_de_taupe ] Hello tout le monde,désolé de vous importuné. Mais j'ai fait une toute petite source pour apprendre à allouer de la mémoire pour une variable puis de comment tester un type de donné en C++ [ par Armandopoulos ] Salut !!en VC++Je voudrai bien savoir comment tester un type de donné (par ex. int , float , long , char) entré par l utilisateur au clavier.J ai pens


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales