Impossible de créer un objet

daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 9 mars 2008 à 12:44
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 9 mars 2008 à 15:29
Bonjour tout le monde,

Je débute en C++.

Je suis occupé à créer un programme qui va me permettre de calculer le rayon d'un triangle, la superficie d'un rectange...

J'ai créé une classe pour chaque objet ainsi qu'une classe contenant un tableau de chaque objet.

Quand j'essaie de créer une variable de type rectangle, j'obtiens ce message d'erreur :

Linking...
principal.obj : error LNK2001: unresolved external symbol "public: __thiscall CTabRectangles::~CTabRectangles(void)" (??1CTabRectangles@@QAE@XZ)
principal.obj : error LNK2001: unresolved external symbol "public: __thiscall CTabRectangles::CTabRectangles(void)" (??0CTabRectangles@@QAE@XZ)
Debug/Geometrie.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.

Voici le code de mon fichier h :

#ifndef GEO_H
#define GEO_H

#include "chaine.h"

class CRectangle //un rectangle
{

public:
    CRectangle();                                        //Constructeur par défaut
    ~CRectangle();                                        //Destructeur

    bool            DefinirNom(const char* UnNom);            //Modificateur du membre m_Nom
    bool            DefinirLongueur(double UneLongueur);    //Modificateur du membre m_Longueur
    bool            DefinirLargeur(double UneLargeur);        //Modificateur du membre m_Largeur

    const char*        Nom() const;                            //Accesseur du membre m_Nom (le this pointe sur un objet constant)
    const double    Longueur() const;                        //Accesseur du membre m_Longueur (le this pointe sur un objet constant)
    const double    Largeur() const;                        //Accesseur du membre m_Nom (le this pointe sur un objet constant)

private:
    CChaine            m_Nom;                                    //Membre contenant l'adresse d'une chaîne de caractères allouée dynamiquement et contenant le nom du rectangle (chaîne non vide)
    double            m_Longueur;           
    double            m_Largeur;

   
};

class CCercle //un cercle
{
public:
    CCercle();                                            //Constructeur par défaut
    ~CCercle();                                            //Destructeur par défaut

    bool            DefinirNom(const char* UnNom);            //Modificateur de m_Nom (pour le cercle)
    bool            DefinirRayon(double UnRayon);            //Modificateur de m_Rayon

    const char*        Nom() const;                            //Accesseur du membre m_Nom (this pointe sur une constante)
    const double    Rayon() const;                            //Accesseur du membre m_Rayon (this pointe sur une constante)

private:
    CChaine            m_Nom;
    double            m_Rayon;

};

class CTriangle //un triangle
{

public:
    CTriangle();
    ~CTriangle();
   
    bool            DefinirNom(const char* UnNom);
    bool            DefinirBase(double UneBase);
    bool            DefinirHauteur(double UneHauteur);

    const            char* Nom() const;
    const            double Base() const;
    const            double Hauteur() const;

private:
    CChaine            m_Triangle;                                //Membre contenant l'adresse d'une chaine de caractère allouée dynamiquement et contenant le nom du rectangle
    double            m_Base;
    double            m_Hauteur;

};

class CTabRectangles
{

public:
    CTabRectangles();
    ~CTabRectangles();

    bool            Charger(const char* NomFichier);
    void            Vider();
   
private:
    long            m_Nombre;
    CRectangle**    m_Tableau;
};

class CTabCercles
{

public:
    CTabCercles();
    ~CTabCercles();

    bool            Charger(const char* NomFichier);
    void            Vider();

private:

    long            m_Nombre;
    CCercle**        m_Tableau;

};

class CTabTriangles
{
public:
    CTabTriangles();
    ~CTabTriangles();
   
    bool            Charger(const char* NomFichier);
    void            Vider();

private:
    long            m_Nombre;
    CTriangle**    m_Tableau;
};

#endif//GEO_H

et voici le code de mon fichier main :

#include
#include "geo.h"
#include "chaine.h"

int main()
{

    CTabRectangles    Rectangles;

    return 0;
}

Merci d'avance pour votre aide.

2 réponses

luhtor Messages postés 2023 Date d'inscription mardi 24 septembre 2002 Statut Membre Dernière intervention 28 juillet 2008 6
9 mars 2008 à 15:21
Et ton fichier chaine.cpp il est ou ?
0
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
9 mars 2008 à 15:29
Salut Luthor,

J'ai trouvé, j'avais déclaré la fontion (destructeur/constructeur) sans le définir.

S'est donc en ordre.

Merci
0
Rejoignez-nous