Oltana.net 23 Mai 2012 à 04:35:21 *
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.


Connexion avec identifiant et mot de passe
Nouvelles:
Pour les gens déja membres, veuillez supprimer le cookie du site présent sur vos navigateurs, sous peine de pb de connexion.

Si ca n'y fait toujours rien, se faire renvoyer un nouveau mot de passe, puis le changer un fois loggé.
 
 
Accueil Aide Rechercher
Oltana.net  |  Tutoriels  |  Grimoire  |  Fil de discussion: [C++] Espaces de nom.
Pages: [1]   Bas de page
Imprimer
Auteur Fil de discussion: [C++] Espaces de nom.  (Lu 601 fois)
Crazy_girl
Animateurs
****
Hors ligne Hors ligne

Messages: 382



Voir le profil
« le: 17 Août 2005 à 00:42:19 »

Bon, alors pour le using namespace std :

Tuto rapide
Les espaces de noms :

Pour des besoins d'implémentation et de clarté du code, il est parfois intéressant de modulariser son code. Modulariser ? C'est à dire découper son code en plusieurs "bouts" pour le rendre plus lisible, ou pour rendre telle classe plus explicite. Pour modulariser son code, on utilise les espaces de nom.

Comment utiliser un espace de nom :

C'est très simple, on l'emploie comme cela :
Code:
namespace LeNomDeVotreEspaceDeNom
{
int f();
int MonEntier=0;
//etc...
};//pas oublier le point-virgule

Un espace de nom n'a jamais aussi peu d'objets ou de fonction dedans, évidemment.

Si on veut utiliser dans son code la variable MonEntier de l'espace de nom précédent, on fait ainsi :

Code:
int main()
{LeNomDeVotreEspaceDeNom::MonEntier=2;}

Pour pouvoir utiliser toutes les variables, fonctions ou classes de votre espace de nom sans avoir besoin de mettre LeNomDeVotreEspaceDeNom à chaque fois (qui devient vite redondant), on utilise le mot clé using. Pour ce faire, on procéde ainsi :

Code:
using namespace LeNomDeVotreEspaceDeNom;
int main()
{
MonEntier=25;
}

Cette méthode est bonne, mais il faut faire attention aux conflits. Imaginons que l'on estdéfinie une fonction f() dans le code ET dans notre espace de nom, si on utilise using namespace il y aura un conflit

Code:
using namespace LeNomDeVotreEspaceDeNom;

int f(){/* blabla*/}

int main()
{
cout<<f();//erreur à la compilation, quel f() utilisé ?
cout<<LeNomDeVotreEspaceDeNom::f();//correct
}


Comme vous le constatez, le mot clé using n'a pas que des bon cotés. Pour éviter ce genre de problème, il vaut mieux éviter de mettre des noms de fonction banales à ses fonctions, classes, etc... dans son espace de nom.

Point.
Journalisée


Crazy_girl
Animateurs
****
Hors ligne Hors ligne

Messages: 382



Voir le profil
« Répondre #1 le: 17 Août 2005 à 00:42:58 »

Auteur de ce tuto : Babycool.
Journalisée


Pages: [1]   Haut de page
Imprimer
Oltana.net  |  Tutoriels  |  Grimoire  |  Fil de discussion: [C++] Espaces de nom.
 
Aller à:  

Powered by SMF 1.1.15 | SMF © 2006-2009, Simple Machines