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

Langage C++ Discussion :

Afficher le type du template ?


Sujet :

Langage C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 17
    Points
    17
    Par défaut Afficher le type du template ?
    Bonsoir je debut avec les templates soyez indulgent :$

    J'ai fait une classe génerique avec template et je voudrais pour mes besoin appeler une methode qui m'affiche le type de T.

    un bout de code sera plus explicite ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    template <class T>
    class mytemplate
    {
    public:
    	void	GetType();
    ...
    private:
    	T _value;
    };
     
    template <class T>
    void mytemplate<T>::GetType()
    {
    	cout << "ici type int par exemple...";
    }
     
    int main()
    {
    	mytemplate<int> tt;
    	tt.GetType();
    }

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    A partir de l'opérateur typeid :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    template <class T> 
    void mytemplate<T>::GetType() 
    { 
       cout << typeid(T).name() ;
    }
    Publication : Concepts en C

    Mon avatar : Glenn Gould

    --------------------------------------------------------------------------
    Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    Grand merci

    Je sais pas pourquoi je cherchais plus compliqué lol

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 29
    Points : 17
    Points
    17
    Par défaut
    bon j'en profite pour une autre question du même ordre

    Imaginons que je connaisse tout les types different qui vont etre utiliser pour ma classe.

    par exemple <int> ou <string>

    comment puis-je initialiser a 0 pour le int et a "" pour le string ?

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    (De tête, non testé ; cf une autre discussion très très récente au sujet des problèmes liés à typeid().name())
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    template <typename T>
    struct type_traits {};
     
    template <> struct type_traits<int>
    {
        enum {someValue = 0};
        static const char* name() { return "int"; }
    };
     
    template <typename E, typename A>
    struct type_traits<std::basic_string<E,A> >
    {
        enum {someValue = 1};
        static const char* name() { return "string"; }
    };
    Pour ton initialisation, appelle le constructeur par défaut qui pour les scalaires initialise à 0 -- ou équivalent
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

Discussions similaires

  1. [Joomla!] Type de template ?
    Par iDaaX dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 27/02/2007, 18h57
  2. afficher le type d'une variable
    Par Dirty Harry dans le forum Langage
    Réponses: 1
    Dernier message: 24/01/2007, 02h18
  3. limit de type de template
    Par elraton dans le forum Langage
    Réponses: 1
    Dernier message: 09/01/2007, 20h55
  4. Afficher tout type d'image (gif ,png, jpg...)
    Par jfb53 dans le forum C++Builder
    Réponses: 22
    Dernier message: 20/07/2005, 14h52
  5. [VB.NET] Afficher un type Image
    Par cicko dans le forum ASP.NET
    Réponses: 4
    Dernier message: 20/02/2004, 10h58

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