IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Paramètre par défaut class templates


Sujet :

C++

  1. #1
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut 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 : 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 <>?

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut 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

    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.

  3. #3
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 861
    Points
    11 861
    Par défaut
    Ok...
    J'aurais pensé(en général j'ai plus d'un paramètre templates, dont un ou plusieurs par défaut, donc le problème ne se posait pas) que C aurait suffit, peut-être. Mais c'est vrai que tout bien réfléchi, ça risquerait d'embrouiller le compilateur.
    Hé bien merci de cette réponse.

    Bonne soirée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. Réponses: 4
    Dernier message: 07/05/2010, 02h11
  3. Paramètre par défaut d'une methode/fonction template
    Par valefor dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2007, 11h22
  4. Réponses: 2
    Dernier message: 19/03/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo