popi0016
Messages postés24Date d'inscriptionjeudi 6 mai 2004StatutMembreDernière intervention21 janvier 2005
-
9 mai 2004 à 15:42
Hylvenir
Messages postés364Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 octobre 2006
-
9 mai 2004 à 16:36
Bonjour, j'essaie de programmer avec Builder6 (Borland) mes 1ers patrons de classe. Malgre bien avoir suivit mon tutorial le compilateur refuse la compilation suivante :
1 - création du fichier de définition du patron
#ifndef DEFPILE_H
#define DEFPILE_H
#include
using namespace std;
export template <class T> class Pile
{
int n_elem;
T *adresse;
public :
Pile();
Pile(int, T *);
~Pile();
void affiche();
};
j'utilise le mot cle export pour le rendre accessible par une autre source
2- je suis les conseils du tutorial et créer un entete de déclaration
#ifndef DECPILE_H
#define DECPILE_H
#include "defpile.h"
template <class T> Pile<T>
{.............................................................................. int n_elem;
T *adresse;
Pile();
Pile(T*);
~Pile();
void affiche;
};
#endif
3- et essaye de l'utiliser dans un main()
//---------------------------------------------------------------------------
#include "decpile.h"
//---------------------------------------------------------------------------
int main()
{
}
//---------------------------------------------------------------------------
mais là : ERREUR
si j'inclut le fichier de "déclaration" il me met :
"déclaration terminer incorrectement" et pointe sur la ligne verte de l'entête "decpile.h"
si j'inclut l'entête de "definition" "defpile.h" a la place de "decpile.h" dans la source du main, l'erreur se transforme en avertissement... et met :
"impossible de créer l'entete precompiler : entete incomplet
et si j'inverse l'ordre de prcompilation en incluant la declaration dans la definition et dans la source :
"decpile.h" qui est inclut dans "defpile.h" et dans l'unite source
j'ai une nouvelle erreur : "les modèles doivent etre des classes ou des fonctions, erreur de syntaxe de declaration"
et point sur la ligne bleue...
que faire ? car depuis hier je tourne en rond :big) :big) :big)