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 :

Declaration d'une struct


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut Declaration d'une struct
    bonjour,
    je me demandais si l'on peut déclarer une struct dans une fonction et l'utiliser. Il me semblais que ca marché avec visual C++ mais avec GCC non...
    par exemple, ce code :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    #include <iostream>
    #include <sstream>
    #include <vector>
    #include <algorithm>
    #include <iterator>
     
     
    struct chatchien
        {
        std::string operator() (const std::string & ss) {return ss == "chat" ? "chien" :ss;};
        } ;
     
    int main(int argc,char ** argv)
        {
     
       std::istringstream is ("Un chat qui mange un chat");
       std::stringstream ios ;
     
        //parcoure le flux mot à mot et applique le foncteur chatchien. Stocke le resultat dans un autre flux en ajoutant un espace aprés chaque mot
        std::transform(std::istream_iterator<std::string>(is) ,std::istream_iterator<std::string>()
            ,std::ostream_iterator<std::string>(ios," "),chatchien() );
     
        std::string result;
     
        //récupère la phrase dans le flux il y aura un espace en trop la fin.
        std::getline(ios,result);
        std::cout<<result<<std::endl;
     
        return 0;
    }
    compile, mais si je déclare la struct dans le main, cela ne compile pas.... On est donc toujours obligé de déclarer les foncteurs hors des fonctions??

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Tu peux tout à fait déclarer une structure dans une fonction, je crois que la seule restriction est que tu ne peux pas utiliser une telle structure en tant que paramètre template.

  3. #3
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Laurent Gomila Voir le message
    Tu peux tout à fait déclarer une structure dans une fonction, je crois que la seule restriction est que tu ne peux pas utiliser une telle structure en tant que paramètre template.
    ... ok.
    c'est con, y as pas de moyen de creer un foncteur(utilisé a un seul endroit) particulier dans la fonction où l'on va l'utiliser??

Discussions similaires

  1. passer unee struct dans un buffer (char *)
    Par baert dans le forum C++
    Réponses: 2
    Dernier message: 20/02/2006, 21h49
  2. declaration d'une structure dans la class TForm1
    Par mdtdamien dans le forum C++Builder
    Réponses: 1
    Dernier message: 15/02/2006, 18h51
  3. implementer une struct dans un .c
    Par jamal dans le forum C
    Réponses: 10
    Dernier message: 10/03/2005, 19h52
  4. Pb lecture d'une struct date
    Par smag dans le forum C++
    Réponses: 13
    Dernier message: 03/03/2005, 22h17
  5. mettre les termes d'un string dans une struct
    Par grand's dans le forum SL & STL
    Réponses: 17
    Dernier message: 29/11/2004, 17h43

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