Paramètre par défaut class templates
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:
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:
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 <>?
Re: Paramètre par défaut class templates
Hello
Citation:
Envoyé par Alp
Edit : avec C<> c il accepte. On est donc obligé d'indiquer des <>?
Oui :D
On doit indiquer qu'il s'agit d'une classe template avec les <>. Mais on peut ne spécifier aucun type s'il y en a un par défaut.