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

SL & STL C++ Discussion :

signification de std


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut signification de std
    Bonjour à tous !
    J'ai deux questions toutes bêtes.
    J'ai beaucoup travaillé avec C++ (MS Visual C++ 6).jusqu'en 2001, puis j'ai eu d'autres préoccupations et j'y reviens maintenant après qq années plus par intérêt personnel que par réelle nécessité.
    J'utilise maintenant Code::blocks + GCC sous windows ou wxDev C++.
    Je remarque que les headers on changé.
    le include <iostream.h> est remplacé par #include <iostream>, l'ancienne inclusion est toujours acceptée mais avec un warning "deprecated" (ce qui doit sgnifier qqch comme "has-been").
    Habitué du langage C je sais parfaitement ce que signifie le #include pour un header mais dans ce cas précis que signifie réellement <iostream> est-ce un header qui ne veut pas dire son nom ou bien autre chose.
    C'est ma première question.
    La seconde est liée. Je constate que là où j'écrivais auparavant tout simplement 'cout' ou 'ofstream' il me faut maintenant écrire std::cout ou std::ofstream, soit !!!
    L'opérateur :: est bien connu c'est l'opérateur de résolution de portée. On l'utilise dans toutes les surcharges de méthodes dans des classes dérivées quand on veut faire un appel explicite à une méthode homonyme d'une classe parente.
    Donc si j'admets que l'opérateur :: a toujours ce sens, cela voudrait dire que dans le 'nouveau' système std est une sorte de superclasse, mais là où je suis largué c'est que ofstream est une classe de flux de la hiérarchie standard dérivant de ios (cf Bjarne Stroustrup). Dans ce cas un ofstream est un objet et je ne sais pas quel sens donner à std::ofstream.
    Merci de m'éclairer si vous pouvez.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  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

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    Merci pour cette réponse rapide et ces liens intéressants, mais ils ne calment pas mon angoisse.
    Ainsi cette phrase:
    L'absence de .h dans son nom indique qu'il s'agit désormais d'un en-tête standard, et donc que toutes ses définitions font partie de l'espace de nommage standard std.
    je ne la comprends pas ...
    Pas plus que l'instruction:
    using namespace std
    Bref, je ne sais pas ce que c'est qu'un "espace de nommage" et je ne sais toujours pas si <iostream> est un header au nom exotique (sans .h) ou qqch d'autre, et que vient faire notre opérateur :: dans tout ça.
    Oups ! Je viens de voir le dernier lien j'y cours de ce pas ...
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut
    OK, C'est bon il y a toutes les réponses dans le dernier lien.
    MERCI A TOUS!!!
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  5. #5
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Les espaces de nommage (namespace) ont ete introduit vers 1991... Ils permettent de rassembler des definitions et leur utilisation a remplace celles de classes n'ayant que des membres statiques dont on abusait parfois auparavant pour un certain nombres d'usages.

    La bibliotheque standard a ete placee dans le namespace std.

    Les entetes sans ".h" ont ete introduit pour differencier clairement ce qui est sense etre conforme a la norme de ce qui ne l'est pas. (La version des IOStreams dans la norme est la 3ieme ecriture et elle differe sur un certain nombre de points de ce qui portait le meme nom; mais pas trop pour une utilisation simple).

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 22/01/2004, 08h27
  2. std MFC
    Par philippe V dans le forum MFC
    Réponses: 7
    Dernier message: 17/01/2004, 00h54
  3. STL : std::set problème avec insert ...
    Par Big K. dans le forum MFC
    Réponses: 13
    Dernier message: 08/11/2003, 01h02
  4. Recherche la signification d'expressions en C
    Par sbadecoder dans le forum C
    Réponses: 16
    Dernier message: 20/08/2003, 07h35
  5. i386, x86 signification ?
    Par Thcan dans le forum Assembleur
    Réponses: 7
    Dernier message: 04/01/2003, 21h36

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