Bonjour à tous,

J'ai les classes suivantes:
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
 
class Base{
virtual void f();
};
 
class A: public Base{
void f();
};
 
class B: pulbic Base{
void f();
};
 
class C: public Base{
void f();
};
je cherche à écrire une fonction du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
Base*  mafonction (Base* ptrBase){
if (typeid(ptrBase) == typeid(A)) return (new A);
else if (typeid(ptrBase) == typeid(B)) return (new B);
else if (typeid(ptrBase) == typeid(C)) return (new C);
}
du moins de manière plus élégante et en ne devant pas rajouter une ligne supplémemtaire chaque fois que je rajouterai un objet dérivé de la classe Base...

Si la question est claire, est ce que qqun sait m'aider?
Merci beaucoup
D