Type generique

Messages postés
2
Date d'inscription
mercredi 14 mai 2003
Statut
Membre
Dernière intervention
14 mai 2003
-
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
-
Salut,
je veux declarer un type generique(monType) qui pourra etre instancier de manieres differentes(c-a-d :
monType=new Class1;
ou
monType=new Class2;
ou....)
comment faire?
merci d'avance
bchargui

5 réponses

Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
1
Il faut que tu crées une super classe pour représenter ton type. Class1, Class2, ..., seront des classes filles ce cette super classe.

Kaid - kaid.fr.st
Messages postés
122
Date d'inscription
lundi 31 mars 2003
Statut
Membre
Dernière intervention
20 avril 2005

Faut que Class1 et Class2 soient dérivées de "Montype" et que les méthodes de "Montype" soient virtuelles pour qu'il y ait mise en oeuvre de la liaison dynamique lors de l'appel...

High_Cobra ;)
Messages postés
2
Date d'inscription
mercredi 14 mai 2003
Statut
Membre
Dernière intervention
14 mai 2003

et je peux utiliser les methodes des classes filles sans probleme?
(EX: monType.methodeclassfille();)
Messages postés
949
Date d'inscription
mardi 2 octobre 2001
Statut
Membre
Dernière intervention
8 juillet 2006
1
Seulement si les méthodes sont définies dans la classe mère (virtuelles ou non).
Pourquoi tu veux faire ca au fait ?

Kaid - kaid.fr.st
Messages postés
455
Date d'inscription
samedi 26 octobre 2002
Statut
Membre
Dernière intervention
6 avril 2004
8
bonjour,

ce que Kaid veut dire est :

#include
using namespace std;

class IClass
{
public:
virtual void f()=0;//virtuel pur
};
class Class1 : public IClass
{
public:
void f(){ cout << "Class1::f" << endl;}
};
class Class2 : public IClass
{
public:
void f(){ cout << "Class2::f" << endl;}
};

int main()
{
IClass *c1 = new Class1;
IClass *c2 = new Class2;
c1->f();
c2->f();
return 0;
}