Bonjour,

J'aimerai créer une classe abstraite A et deux classe dérivante AA et AB
Je veux que la classe A contienne une méthode static pour la création des objets de type AA et AB et une méthode virtuel implémenté dans AA et AB

J'ai donc le code suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
class A
{
public:
	static A Create(BOOL bIsB = false);
	~A(void);
protected:
	A(void);
	virtual void Run()=0;
};
Pour AA et AB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
class AA :
	public A
{
public:
	AA(void);
	~AA(void);
	virtual void Run();
};

Pour la méthode Create j'ai:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
A A::Create(BOOL bIsB)
{
	if(bIsB)
		return AB();
	else
		return AA();
}

Et à la compilation j'ai une erreur : error C2259: 'A'*: impossible d'instancier une classe abstraite


J'ai loupé quelque chose???

Merci pour vos lumières