Liste comportant une classe template

horcks Messages postés 2 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 octobre 2008 - 25 oct. 2008 à 17:03
horcks Messages postés 2 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 octobre 2008 - 25 oct. 2008 à 18:54
Bonjour,


J'aurais voulu savoir s'il est possible de créer une liste contenant une classe template.


Je m'explique :


Voici le code (écourté) du template :

template <class T>
class CompteEnBanque
{
    T *tit;
    std::list<Operation> historique;

    protected:
    double solde;
};

Le T correspond ici au type de compte (Personnel, Entreprise, Joint...)

Or, mon but est de creer une classe Banque qui puisse contenir la liste les comptes que possede la banque. J'ai donc commencer à faire :

class Banque
{
   
    std::string nom;
   
    std::list<Operation> l_ope;
    std::list< CompteEnBanque > l_ceb;
    double liquidites;
   
    public:

    Banque();
    ~Banque();

};

mais cela ne fonctionne pas etant donné que je dois donner un argument au template.
Comment alors rendre cette liste générique ?

Merci d'avance.

2 réponses

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
25 oct. 2008 à 17:11
salut

tu peux tenter de faire un truc comme ca :

abstract class Type_de_compte{
...
};

class Personnel : Type_de_compte{

...

};

class Entreprise : Type_de_compte{

...

};

class Joint : Type_de_compte{

...

};

class CompteEnBanque
{
    Type_de_compte *tit;
    std::list<Operation> historique;

    protected:
    double solde;
};

class Banque
{
   
    std::string nom;
   
    std::list<Operation> l_ope;
    std::list< CompteEnBanque > l_ceb;
    double liquidites;
   
    public:

    Banque();
    ~Banque();

};
0
horcks Messages postés 2 Date d'inscription samedi 25 octobre 2008 Statut Membre Dernière intervention 25 octobre 2008
25 oct. 2008 à 18:54
Le probleme, c'est que les classes definissant les differents type des comptes sont quand meme pas mal differentes. C'est pour cela que je ne voulais pas passer par une superclasse. Il n'y a pas moyen de faire autrement ?
0
Rejoignez-nous