dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDernière intervention 7 mars 2012
-
5 juin 2006 à 17:50
dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDernière intervention 7 mars 2012
-
6 juin 2006 à 09:15
Bonjour,
j'ai un problème avec un projet... J'ai essayé de simplifier le problème au maximum avant de le poser et voilà ce que ça donne :
On crée un projet "classe" avec 1 fichier "classe.h" dans un dossier "classe" :
// classe.h
#ifndef CLASSE_H
#define CLASSE_H
#include <math.h>
class classe
{
private :
double num;
public :
// Ca marche (pas de classe.cpp dans le projet)
classe(double val) {num = val;};
~classe() {};
double getRacine() {return sqrt(num);};
};
#endif
On crée un autre projet : "testClasse" avec 1 fichier "testClasse.cpp" dans le dossier "testClasse" :
// testClasse.cpp
#include "..\classe\classe.h"
int main()
{
classe * test = new classe(10);
double d = test->getRacine();
delete test;
return 0;
}
On compile les projets... ça marche, c'est magnifique
Modifions un petit peu le projet "classe" : ajout d'un fichier "classe.cpp"
Ce qui nous donne :
// classe.h
#ifndef CLASSE_H
#define CLASSE_H
#include <math.h>
class classe
{
private :
double num;
public :
// Ca ne marche pas : classe.cpp ajouté au projet
classe(double val);
~classe();
double getRacine();
};
On compile "classe" -> OK
On compile "testClasse" -> Erreurs...
testClasse.obj : error LNK2019: symbole externe non résolu "public: __thiscall classe::~classe(void)" (??1classe@@QAE@XZ) référencé dans la fonction "public: void * __thiscall classe::`scalar deleting destructor'(unsigned int)" (??_Gclasse@@QAEPAXI@Z)
testClasse.obj : error LNK2019: symbole externe non résolu "public: double __thiscall classe::getRacine(void)" (?getRacine@classe@@QAENXZ) référencé dans la fonction _main
testClasse.obj : error LNK2019: symbole externe non résolu "public: __thiscall classe::classe(double)" (??0classe@@QAE@N@Z) référencé dans la fonction _main
dmk04
Messages postés206Date d'inscriptionsamedi 29 octobre 2005StatutMembreDernière intervention 7 mars 2012 5 juin 2006 à 21:21
non, c'est juste que si tu ne met pas de main, il compile pas parce qu'il ne trouve pas la fonction "main", donc je lui en met une pour lui faire plaisir. Quand je met tout dans "classe.h" il ne demande pas de "main"...