Bonjour à tous ; quelqu'un peut-il construire le projet ci-dessous et me
dire s'il obtient la même erreur au linkage ?
premier fichier .h :
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
26
27
28
29
30
31
32
33
34
#ifndef ARMES
#define ARMES
 
#include <iostream>
using namespace std;
 
class ArmeType
{
public :
	virtual void utiliserArme(void) = 0;
};
// Classes dérivées
class Poignard : public ArmeType
{
public :
	virtual void utiliserArme(void) {cout<<"Le garde n'eut que le temps d'apercevoir l'eclat brillant de mon POIGNARD avant de s'ecrouler mort."<<endl;}
};
class ArcEtFleche : public ArmeType
{
public :
	virtual void utiliserArme(void) {cout<<"D'un trait,la FLECHE parcouru la distance qui me separait de ma proie et toucha juste a la jambe gauche ..."<<endl;}
};
class Hache : public ArmeType
{
public :
	virtual void utiliserArme(void) {cout<<"Un coup formidablement assene de ma HACHE fit voler en eclat son mince bouclier de bois !"<<endl;}
};
class Epee : public ArmeType
{
public :
	virtual void utiliserArme(void) {cout<<"Je venais a peine d'embrocher 2 gardes avec mon EPEE que 3 autres apparurent sur le seuil de la porte d'entree."<<endl;}
};
 
#endif // ARMES
second fichier .h :
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#ifndef PERSONNAGES
#define PERSONNAGES
 
#include "TypeArmes.h"
 
class Personnage
{
protected :
	ArmeType*	arme; // type d'arme en main
public :
	virtual void combattre(void) {};
};
// Classes dérivées
class Assassin : public Personnage
{
public :
	Assassin() {arme=new Poignard();}
	virtual void combattre(void) {arme->utiliserArme();}
};
class Maraudeur : public Personnage
{
public :
	Maraudeur() {arme=new ArcEtFleche();}
	virtual void combattre(void) {arme->utiliserArme();}
};
class Guerrier : public Personnage
{
public :
	Guerrier() {arme=new Hache();}
	virtual void combattre(void) {arme->utiliserArme();}
};
class Corsaire : public Personnage
{
public :
	Corsaire() {arme=new Epee();}
	virtual void combattre(void) {arme->utiliserArme();}
};
 
#endif // PERSONNAGES
fichier .cpp :
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
#include "Personnages.h"
 
int main(void)
{
	// Création des personnages
	Corsaire	peter;
	Maraudeur	robin;
	Assassin	landru;
	Guerrier	conan;
	// Ils attaquent
	peter.combattre();
	robin.combattre();
	landru.combattre();
	conan.combattre();
 
	return 0;
}
Question subsidiaire : Pourquoi une référence à _WinMain@16 alors que c'est un projet Win32 ?
Merci par avance ...