Voila j'ai une classe Objet qui à une classe fille Personnage qui a une classe fille Joueur qui a une classe fille Humain.
Mon but est de faire une classe fille de Humain mais en template.
Cette classe représente la classe (guerrier, archer, chevalier, etc.) de l'humain.
Alors est-ce possible ?
Car moi ça me met un message d'erreur.
Voici le code :
Guerrier.h
Guerrier.cpp
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 class Humain; template <class T> class Guerrier : public T { public: char* GetClasse(void); Guerrier(char* Nom); virtual ~Guerrier(); };
Le message d'erreur est le suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #include "Guerrier.h" #include "InclusionRace.h" ////////////////////////////////////////////////////////////////////// // Construction/Destruction ////////////////////////////////////////////////////////////////////// template <class T> Guerrier<T>::Guerrier(char* Nom) : T(Nom) { } template <class T> Guerrier<T>::~Guerrier() { } template <class T> char* Guerrier<T>::GetClasse() { return "Archer\0"; }
Eleckase.obj : error LNK2001: unresolved external symbol "public: __thiscall Guerrier<class Humain>::Guerrier<class Humain>(char *)" (??0?$Guerrier@VHumain@@@@QAE@PAD@Z)
Debug/Eleckase.exe : fatal error LNK1120: 1 unresolved externals
InclusionRace.h est un en-tête qui inclut toutes les races.
Et le constructeur de humain est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Humain(char *Nom);
Je veux utiliser un template car il y a 13 races et 19 classes et que je préfèrerais ne pas à avoir à les croiser toutes...![]()
Partager