Bonjour/Bonsoir,

Hé bien le code parlera bien mieux que moi:
J'ai une class A, une class B, toutes deux munies d'une fonction membre publique echo(), qui affiche quelque chose par cout.

Maintenant, voici la déclaration d'une class, C de son nom, comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
template <class T = A> class C 
{
         public:
                T t;
};
Jusque là en principe tout va bien, non? Oui ...
Seulement dans le code suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
    C c;
    c.t.echo();
    C<B> cb;
    cb.t.echo();
La première ligne me donne une erreur de compilation :
missing template argument before c

Pourriiez-vous m'expliquer le pourquoi du comment?
Merci beaucoup pour votre temps et votre attentio.

Edit : avec C<> c il accepte. On est donc obligé d'indiquer des <>?