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 :

Qu’elle est le rôle de std


Sujet :

C++

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut Qu’elle est le rôle de std
    Salut, a quoi sert std ?
    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
     class Person
    {
    public:
        // accesseur : renvoie le nom
        const std::string & GetName() const // notez le const
        {
            return this->name;
        }
     
        // mutateur : change le nom
        void SetName( const std::string & NewName )
        {
            this->name = NewName;
        }
     
    private:
        std::string name; // nom de la personne
    };

  2. #2
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    il s'agit de l'espace de nommage (namespace) standard : il permet de regrouper les classes dans un ensemble plus gros (un peu comme les packages en Java).

    P.S : pense à rajouter la balise :code: la prochaine fois (il s'agit du petit dièse dans l'outil d'édition

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut
    Citation Envoyé par hiko-seijuro Voir le message
    il s'agit de l'espace de nommage (namespace) standard : il permet de regrouper les classes dans un ensemble plus gros (un peu comme les packages en Java)
    Dsl je n’ai pas comprit

  4. #4
    Membre Expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Par défaut
    au temps pour moi. Est ce que tu as fait de la programmation orientée objet ? (vu le message je pense que oui. Tu as donc tout un ensemble de classes qui forment un tout cohérent et que tu souhaites donc regrouper. Pour cela tu as une entité nommée le "namespace". Ici tu as un namespace qui s'appelle "std" et qui regroupe toutes les entitées de la bibliothèque standard. Pour plus d'information voir ici -> http://cpp.developpez.com/faq/cpp/in...PACE_using_std

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

    Informations professionnelles :
    Activité : aucun

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

    L'un des principaux problèmes que l'on peut rencontrer en programmation de manière générale, c'est que l'on court toujours le risque qu'un nom (de type, principalement) trouve de l'intérêt pour plusieurs personnes, qui travaillent sur des projets totalement différents.

    Ainsi, je pourrais très bien d'un coté, envisager de créer une classe "client" qui représente ... le client d'un magasin et de l'autre vouloir créer une classe "client" qui représente... le client dans le cadre d'une application "client/serveur".

    Si, un peu plus tard, je dois gérer les... clients d'un magasin dans le cadre d'une application... client / serveur, ces deux classes vont entrer en conflit, et j'aurai le plus grand mal à faire les faire cohabiter (Quand je déclare ma variable Client cli, s'agit-il du client du magasin ou de celui de l'application client/serveur )

    En C, on prend généralement le pli de "préfixer" le nom du type par celui de la blibliothèque (par exemple GLint etc...).

    Ca facilite un peu les choses, mais ça pose le problème que les noms de types deviennent de plus en plus grands, et donc, de plus en plus difficile à retenir.

    La POO a choisi une autre approche: donner l'occasion de regrouper tous les types (pour un but donné) dans une sorte de boite.

    Cette "boite" fonctionne selon le principe des "poupées russes", c'est à dire qu'une "boite" peut contenir une autre, qui peut elle-même en contenir un autre etc.

    Tous les types qui se trouvent à l'intérieur d'une de ces "boites" sont en connaissent les type qui se trouvent dans la même "boite", ainsi que ceux qui se trouvent dans les "boites supérieures".

    Par contre, quand on est en dehors d'une "boite", il faut préciser que l'on veut accéder à l'intérieur de la "boite", avant de pouvoir dire le type qui nous intéresse.

    Cette boite porte le nom d' espace de noms en C++, de paquetage en java ou en C#, mais le principe reste le même

    Bref, la bibliothèque standard a décidé de mettre tous les types qu'elle déclare dans un espace de noms particulier: l'espace de noms std (qui est simplement une abréviation de "standard" )

    Quand on écrit std::string (et on peut voir exactement le même principe dans std::vector<int>, std::cin, std::cout et plein d'autres classes encore), on signale simplement au compilateur que l'on veut accéder à la classe "string" (ouv vector ou cin ou cout ou ...) qui se trouve... dans l'espace de nom std.
    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

Discussions similaires

  1. [FB1.5]Quelle est la requete la plus rapide ?
    Par Sitting Bull dans le forum SQL
    Réponses: 4
    Dernier message: 10/12/2004, 13h46
  2. Quelle est la différence entre le float et le real ?
    Par Manson dans le forum Débuter
    Réponses: 3
    Dernier message: 10/08/2004, 17h26
  3. execute/perform quelle est la différence?
    Par stago dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/06/2004, 10h51
  4. Quelle est la fiabilité du protocole SSL ?
    Par Anonymous dans le forum Développement
    Réponses: 5
    Dernier message: 05/09/2002, 13h31

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