Partage
  • Partager sur Facebook
  • Partager sur Twitter

pointeur ou non

comment savoir ?

    20 juin 2008 à 21:05:37

    Bonjour,

    j'aimerais faire quelque chose du genre :
    template<typename T>
    i init(T i)
    {
       if( isPointeur(i) ) i = NULL ;
       else if( isInt( i ) ) i = 0 ;
       else if( isDoubleOuFloat( i ) ) i = 0.0 ;
       else if( isChar( i ) ) i = NULL ;
    
      return i ;
    }
    


    comment faire ?

    merci
    • Partager sur Facebook
    • Partager sur Twitter
      20 juin 2008 à 21:47:36

      Tu peux faire une spécialisation du template de ce type :

      template<typename T*>
      T init(T i){/*....*/}
      


      Mais comme Ice_Keese, je pose la question: "Pourquoi ?"
      • Partager sur Facebook
      • Partager sur Twitter
      Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
        20 juin 2008 à 21:51:46

        Je suis en train de créer une classe.

        template< typename T >
        class  test 
        {
          public:
            test();
          private:
            T obj ;
        };
        


        Donc si j'appel test. obj Auras une valeur aléatoire. Je veux donc lui en attribuer une par défaut

        • Partager sur Facebook
        • Partager sur Twitter
          20 juin 2008 à 21:54:45

          Dans l'absolu, seule la spécialisation template est valable. (maintenant les troupeaux de questions identiques se baladent sur plusieurs sites à la fois...)

          Dans ton cas très particulier, "T()" est la réponse. (cf les signatures des conteneurs standard qui prennent des paramètres par défaut)
          • Partager sur Facebook
          • Partager sur Twitter
          C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
            20 juin 2008 à 22:18:07

            int i = int();
            std::cout << i; // affiche 0
            


            Eh oui, les types primitifs ont aussi leurs constructeurs!
            • Partager sur Facebook
            • Partager sur Twitter

            pointeur ou non

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown