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 <BasicConsole.h>
#include "geo.h"
#include "chaine.h"
int main()
{
CTabRectangles Rectangles;
return 0;
}
Merci d'avance pour votre aide.