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 :

rôle des librairy


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut rôle des librairy
    bonjour,
    j'aimerai savoir quelle sont le rôle de ces librairies :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <vector>
    #include <windows.h>
    j'ai cherché un peu partout, je n'ai pas trouvé

    merci

  2. #2
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Tu n'as pas dû chercher bien loin. Pour les quatres premiers, n'importe quelle référence sur le C++ devrait t'indiquer ce que ces entêtes (et non bibliothèque, et encore moins librairies) déclarent (en voici deux: http://www.amazon.fr/exec/obidos/ASIN/0201379260, http://www.dinkumware.com/manuals/default.aspx).

  3. #3
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Pour les quatre premiers, il s'agit de fichier d'entête de la bibliothèque standard, qui déclarent respectivement:
    1. les flux d'entrée/sortie (cin, cout, cerr et clog)
    2. la classe de gestion de chaines de caractères (string)
    3. les flux de données vers/venant de fichiers
    4. la classe de gestion de tableau (vector).

    Le dernier est un fichier d'entête propre à windows.

    Nota:
    • En français, on parle de bibliothèque, et en anglais de library
    • Lorsqu'il s'agit d'inclusion, ce sont des fichiers d'entête, qui fournissent des déclarations se rapportant le plus souvent à une partie seulement d'une bibliothèque (ici, les quatre fichiers font référence à la bibliothèque standard)
    • une bibliothèque est un ensemble de types et de fonctions prédéfinis réutilisables qui permet de se faciliter la vie en partant du principe "que les types réagissent correctement", plutôt que de commencer à "réinventer la roue" en permanence
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    Merci beaucoup,
    Certaine de ces library (ou bibliothèques) sotn payante ? ou elles sont toutes libre ?

    et dernière petite question, j'ai ça dans le tutoriel que je suis entrain de tester, je me doute qu'il y a un rapport avec la bibliothèque stdlib ou stdio, mais je ne sais pas exactement ce que cela fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using namespace std;
     
    using std::cout;
    using std::ifstream;
    using std::ofstream;
    Y'a t il un moyen d'ouvrir ces bibliotheques pour voir ce qu'il y a dedans ?
    Merci

  5. #5
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Certaines bibliothèques sont payantes, mais la bibliothèque standard est fournie... en standard par tous compilateurs...

    Si le compilateur est payant, le prix inclus fatalement celui de l'implémentation de la bibliothèque standard

    Les quatre directives mises de manière successives ne servent à rien...

    En effet, le simple fait d'utiliser using namespace std; rend toutes les autres inutiles.

    La bibliothèque standard définit l'ensemble de ses classes et de ses fonctions dans l'espace de noms std.

    Cela signifie que, normalement, il faut en arriver à écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    std::string uneChaine;
    std::cout<<"ceci est un affichage"<<std::endl;
    std::ofstream monfichierSortie("fichier.txt");
    std::vector<std::string> tableauDeChaines;
    ...
    Et comme cela peut facilement rendre le code assez difficile à lire (en plus de nous obliger à faire des instructions "à rallonge"), il est possible, grace à la directive using, de dire au compilateur
    A partir d'ici, tu utilise <telle chose> comme si elle faisait partie de mon espace de noms global
    Ainsi, si tu venais à avoir énormément de code faisant appel à std::cout, tu pourrais te contenter de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    using std::cout;
    void fonction()
    {
        cout<<"truc";
    }
    void f2()
    {
       cout<<"machin";
    }
    /*...*/
    Comme tout ce qui est fournit par la bibliothèque standard se trouve dans le même espace de nom (std), la directive using namespace std; revient donc à dire au compilateur
    A partir d'ici, tu utilise tout ce qui se trouve dans l'espace de noms std exactement comme si cela se trouvait dans l'espace de noms en cours
    ce qui inclut std::cout, std::ofstream, std::string et toutes les classes fournies par le standard (pour autant que tu aies inclu le fichier d'en-tête qui déclare la/les classes )

    Pour ce qui concerne la bibliothèque standard, la grosse majorité est directement définie dans les fichiers d'en-tête.

    Tu peux donc sans aucun problème ouvrir les différents fichiers d'en-tête avec ton éditeur de texte favori, et aller décortiquer le fonctionnement de chaque classe et de chaque fonction.

    Cependant, la bibliothèque standard utilise énormément une technique qui s'appelle les template et qui permet de fournir un comportement à respecter "quel que soit le type réel de données manipulées".

    La syntaxe utilisée est donc parfois un peu surprenante pour quelqu'un n'ayant pas encore vu la généricité en C++
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 115
    Par défaut
    merci beaucoup pour toutes ces réponses, c'est plus clair pour moi
    Bonne journée

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

Discussions similaires

  1. [JAR exécutable] comment y intégrer des librairies ?
    Par sixkiller dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 07/04/2005, 10h03
  2. Réponses: 3
    Dernier message: 25/01/2005, 11h27
  3. [Ant Eclipse] Import des librairies dans un build.xml
    Par Alwin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 17/11/2004, 16h35
  4. [NETBEANS] Monter des librairies
    Par Yann dans le forum NetBeans
    Réponses: 1
    Dernier message: 02/07/2004, 14h12
  5. compatibilité des librairies directX8
    Par Freakazoid dans le forum DirectX
    Réponses: 3
    Dernier message: 23/05/2002, 21h33

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