Partage
  • Partager sur Facebook
  • Partager sur Twitter

Erreur "Non-class Type"

????

Sujet résolu
    24 mars 2008 à 15:28:48

    Salut tout le monde !
    Mon projet est bloqué par une erreur énervante est incompréhensible.
    J'ai créé une classe JImageLight qui contient une image SDL ainsi que quelques méthodes utiles (centrer, afficher, ect...)

    Seulement, voilà :
    Quand j'utilise le constructeur par défaut, je ne peut plus utiliser les autres méthodes suite à cela, car j'obtiens une erreur :

    NGC Main - main menu.cpp:27: error: request for member `Reload' in `Mur', which is of non-class type `JImageLight ()()'


    Voilà les extraits de code fautifs, sans les includes et tout :

    Le main
    1. int main(int argc, char *argv[])
    2. {
    3.        NGC_App App (600,760,32,false);
    4.        App.Set_cur_visibility(true);
    5.        App.Set_default_cur("Curseurs/Curseur.png");
    6.        JImageLight Mur(); // Déclare la JImageLight Mur
    7.        Mur.Relaod ("Images/Textures/Mur.png"); // charge la surface
    8.        Mur.Set_screen( App.Get_screen ()); //Ceci permet de savoir sur quelle surface bliter le mur
    9.         while (App.Is_running())
    10.         {
    11.                App.Update_events();
    12.                if (App.Key(SDLK_ESCAPE))
    13.                {
    14.                       App.Finish();
    15.                }
    16.                Mur.Afficher (30, 30);
    17.                App.Flip();
    18.                App.Effacer();
    19.         }
    20.        exit(EXIT_SUCCESS);
    21. }


    Et le code de la classe JImageLight :
    1. class JImageLight
    2. {
    3.        public :
    4.        /* Constructeurs et destructeurs */
    5.        JImageLight ();
    6.        JImageLight (const std::string & chemin, SDL_Surface * ecran);
    7.        ~JImageLight ();
    8.        /* Les fonctions de base ! */
    9.        void Afficher (int x,int y);
    10.        bool Reload(const std::string & Chemin);
    11.        void Set_screen(SDL_Surface * val);
    12.        SDL_Surface * Get_SDL_Surface () const;
    13.        std::string Get_adresse () const;
    14.        protected :
    15.        bool Is_ok () const;
    16.        protected :
    17.        SDL_Surface *ecran;
    18.        SDL_Surface *Image;
    19.        std::string Adresse;
    20. };

    1. #include "JImageLight.hpp"
    2. ///////////////////////////////////////////////////////////
    3. using namespace std;
    4. ///////////////////////////////////////////////////////////
    5. JImageLight::JImageLight ()
    6. {
    7.        ecran = NULL;
    8.        Image = NULL;
    9. }
    10. JImageLight::JImageLight (const std::string & Chemin, SDL_Surface * necran)
    11. {
    12.        ecran = necran;
    13.        Image = IMG_Load(Chemin.c_str());
    14.        if (Image == NULL)
    15.        {
    16.               cout << "# JImageLight : Il semble que l'image ne puisse être chargée. (Voir " << __FILE__ << " l." << __LINE__ << " )" << endl;
    17.               cout << "#-> Chemin    = " << Chemin << endl << endl;
    18.        }
    19. }
    20. void JImageLight::Set_screen (SDL_Surface * val)
    21. {
    22.        if (val != NULL)
    23.        {
    24.               ecran == val;
    25.        }
    26.        else
    27.        {
    28.               cout << "# JImageLight : Ecran ne peut être égal à NULL !! (Voir " << __FILE__ << " l." << __LINE__ << " )" << endl;
    29.        }
    30. }
    31. void JImageLight::Afficher (int nx, int ny)
    32. {
    33.        if (Is_ok())
    34.        {
    35.               SDL_Rect Position_temporaire;
    36.               Position_temporaire.x = nx;
    37.               Position_temporaire.y = ny;
    38.               SDL_BlitSurface(Image, NULL, ecran, &Position_temporaire);
    39.        }
    40. }
    41. bool JImageLight::Reload (const string & nChemin)
    42. {
    43.        Image = NULL;
    44.        Image = IMG_Load(nChemin.c_str());
    45.        Adresse = nChemin;
    46.        if (Image == NULL)
    47.        {
    48.               cout << "# JImageLight : Il semble que l'image ne puisse être chargée. (Voir " << __FILE__ << " l." << __LINE__ << " )" << endl;
    49.               cout << "#-> Chemin    = " << nChemin << endl << endl;
    50.               return false;
    51.        }
    52.        return true;
    53. }


    si vous avez une idée de ce que signifie cette erreur... Je précise qu'elle ne survient pas quand j'utilise l'autre constructeur !

    Merci de votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      24 mars 2008 à 15:43:26

      Citation : Pas de titre

      void JImageLight::Set_screen (SDL_Surface * val)
      {
      if (val != NULL)
      {

      ecran == val;


      }
      else
      {



      tu as mis un égal en trop je crois ^^
      • Partager sur Facebook
      • Partager sur Twitter
        24 mars 2008 à 15:56:10

        o_O:( ... Ohhhh....
        MEEEEEERRRRRRDDDDDDDDE !!!!

        1 heure de prise de tête pour ça !!!

        blam * se tire une balle devant son clavier *

        Merci pour cette aide rapide !
        ++


        • Partager sur Facebook
        • Partager sur Twitter

        Erreur "Non-class Type"

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown