Résultats de 1 à 3 sur 3

Sujet : Pb de compil

  1. #1
    Membre MP
    Inscrit
    août 2013
    Messages
    1

    Pb de compil

    Salut !

    Je débute en c++ et j\'ai l\'erreur de compile suivante:
    __________
    Box58.cpp:21: ISO C++ forbids defining types within return type
    Box58.cpp:21: return type specification for constructor invalid
    __________

    Voilà mes sources:
    __________
    #ifndef __BOX58_H
    #define __BOX58_H

    #include \"BoxGeometry.h\"
    #include \"Vector3.h\"

    class Box58 : BoxGeometry
    {
    public:
    Box58(Real posX, Real posY, Real posZ, Real length, Real width, Real height, char* name = \"Box\");
    ~Box58();

    public:
    void setPosition(Vector3 * pos);
    Vector3 getPostion();
    Vector3 getSize();
    }
    #endif
    ____________
    #include \"Box58.h\"
    #include <ode/ode.h>

    Box58::Box58 (Real posX, Real posY, Real posZ, Real length, Real width, Real height, char* name) : BoxGeometry(length,width,height,name) //<- ceci est la ligne 21
    {
    dGeomSetPosition (this -> getGeometry(),posX,posY,posZ);
    }

    Box58::~Box58()
    {
    }

    void Box58::setPosition(Vector3 * pos)
    {
    dGeomSetPosition(this->getGeometry(),(dReal) pos->x, (dReal) pos->y, (dReal) pos->z);
    }

    Vector3 Box58::getPostion()
    {
    Vector3 * pos = new Vector3(dGeomGetPosition (this->getGeometry()));
    return *pos;
    }

    Vector3 Box58::getSize()
    {
    Vector3 * size = new Vector3(length,width,height);
    return *size;
    }
    _________________________

  2. #2
    Membre MP
    Inscrit
    août 2013
    Messages
    665
    Je suis pas très sûr de moi et j\'ai pas trop le temps de vérifier pour l\'instant mais ça peut peut-être t\'aider.
    ... : BoxGeometry(length,width,height,name)
    Je crois que cette syntaxe est plutôt celle des variables membres de la classe.
    Mais je pense que toi, tu essayes d\'appeler le constructeur de la classe BoxGeometry.
    Donc je te conseillerais d\'utiliser simplement :

    Code:
    Box58::Box58 (Real posX, Real posY, Real posZ, Real length, Real width, Real height, char* name) 
    {
       ::BoxGeometry(length,width,height,name);
       dGeomSetPosition (this -&gt; getGeometry(), posX, posY, posZ);
    
    }
    On verra bien si j\'ai touché juste. :
    (ou que je suis con et que je ne comprends rien à rien :?: )
    [col=#FFDD1A]( [/col][col=#FF0000]B[/col]e [col=#FF0000]S[/col]i[col=#FF0000]d[/col]e [col=#FFDD1A])[/col]

  3. #3
    Membre MP
    Inscrit
    août 2013
    Messages
    6 517
    Une question Box58 hérite bien en privée et non en public de BoxGeometry ?

    Car tu n\'as pas mis public, par défaut c\'est un héritage privé.
    Sinon, essaie de faire appel au constructeur de BoxGeometry en enlevant l\'espace entre le nom et les parenthéses des paramètres.
    Lisez la charte, pensez à regarder la FAQ, les tutoriaux, l'annuaire et faites une recherche dans les forums.
    N'oubliez pas le Tag [Résolu]http://www.ressources.moteurprog.com...rum/Resolu.gif.

    Initiez-vous à Delphi avec Turbo Delphi Explorer, au C ou au C++ avec Code::Blocks et C# avec Visual C# 2005 Express.

Informations du sujet

Utilisateur(s) parcourant ce sujet

il y a actuellement 1 utilisateur(s) parcourant ce sujet. (0 membre(s) et 1 visiteur(s))

Règles des messages

  • Vous ne pouvez pas créer de sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas importer de fichiers joints
  • Vous ne pouvez pas éditer vos messages
  •  
  • Les BB codes sont Activés
  • Les Smileys sont Activés
  • Le BB code [IMG] est Activé
  • Le code [VIDEO] est Activé
  • Le code HTML est Désactivé