Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/02/2012, à 17:36

Destroyers

[C++] TEMPLATE problème assez simple (RESOLU)

bonjour tout le monde.
mon problème est simple:
je fais un code qui fonctionne, puis je met du template, et sa marcha plus ! lol magique.
pourtant je n'arrive pas a voir où peut être le problème ...
merci de votre aide.

//main.cpp
#include "personnage.h"

int main()
{
    personnage hero;
    personnage mechant;
    hero.attaquer<personnage>(mechant);

    return 0;
}
//personnage.h
#ifndef PERSONNAGE
#define PERSONNAGE

#include"arme.h"  //un fichier qui comporte la classe arme

class personnage
{
    private:

    int vie;
    arme *gun;

    public:
    
    personnage();
    ~personnage();
    template<typename ennemi> void attaquer(ennemi& cible);
};

#endif
//personnage.cpp
#include "personnage.h"


//CONSTRUCTEURS

personnage::personnage()
{
    vie=100;
    gun=new arme();
}

personnage::~personnage()
{
    delete gun;
}

template<typename ennemi>
void personnage::attaquer(ennemi& cible)
{
    cible.vie-=gun->getdegats();  //getdegats() retourne un simple entier
}

et voici l'erreur:

/tmp/ccaqYuW4.o: In function `main':
main.cpp:(.text.startup+0x91): undefined reference to `void personnage::attaquer<personnage>(personnage&)'
collect2: ld a retourné 1 code d'état d'exécution

merci de votre aide.

PS: pour ceux qui ce posent des questions, je met des templates car les instances de la classe personnage ne seront pas les seule qui pourront être attquées (il y a une classe orc, gnome, etc...)

Dernière modification par Destroyers (Le 20/02/2012, à 18:17)

Hors ligne

#2 Le 20/02/2012, à 18:05

valAa

Re : [C++] TEMPLATE problème assez simple (RESOLU)

Hello,
La réponse ne serait pas là : http://cpp.developpez.com/faq/cpp/index … _templates ? smile

Hors ligne

#3 Le 20/02/2012, à 18:06

grim7reaper

Re : [C++] TEMPLATE problème assez simple (RESOLU)

Salut,

Ton problème ça doit être ça, non ?

Édit : Arf, grillé de peu tongue

Dernière modification par grim7reaper (Le 20/02/2012, à 18:07)

Hors ligne

#4 Le 20/02/2012, à 18:07

valAa

Re : [C++] TEMPLATE problème assez simple (RESOLU)

cool

Hors ligne

#5 Le 20/02/2012, à 18:17

Destroyers

Re : [C++] TEMPLATE problème assez simple (RESOLU)

okééé
merci beaucoup
wink
je savais bien que mon problème était simple wink

Hors ligne

#6 Le 20/02/2012, à 18:36

Destroyers

Re : [C++] TEMPLATE problème assez simple (RESOLU)

on sais quand gcc sera capable de compiler les fonctions templates comme des fonctions normales ?

Hors ligne

#7 Le 20/02/2012, à 19:11

grim7reaper

Re : [C++] TEMPLATE problème assez simple (RESOLU)

Jamais, le mot-clef export à été supprimé du standard C++11 (Cf. ici, partie "Removed Export Template").

Hors ligne