Templates

Templates

par Yanni Julien Skawronski,
Number of replies: 2
Bonjour,

Dans le cours du 23 avril sur les templates, il nous est expliqué qu'on peut faire:

template<int N>
class UneClasse
{
....
};

Mais est-il possible d'utiliser un autre type que "int" ("size_t" par exemple)?
In reply to Yanni Julien Skawronski

Re: Templates

par Raffaele Ancarola,

Bien sûr on peut avoir n'importe quel classe, il faut utiliser cette syntaxe:

template <class MyClass>
class Vector : private std::vector<MyClass> {
// constructor, destructor, methods, ecc..

typedef std::vector<MyClass> Base;

    T& at(size_t index) {
return Base::at(index);
}
const T& at(size_t index) const {
return Base::at(index);
}
};

C'est seulement un exemple, mais qui permet de comprendre comment un peut generaliser en alternative au polymorphisme (ne pas abuser).

Template signifie que la classe n'existe que quand le template parameter (MyClass) est specifié dans le code, donc il faudrait aussi que toutes le definitions soit dans le .h .