Moi pour les projets de grande envergure. Ca permet de clarifier le code source.
Imagine que ton prog se divise en deux parties, et dans chacune des deux parties tu as une fonction Redraw() par exemple.
Tu as deux solutions :
* Soit tu les renommes Redraw1() et Redraw2()
* Soit tu utilises les namespaces.
Dans ton fichier source1.cpp, tu auras :
using namespace Partie1;
...
...
void Redraw();
...
...
et dans ton fichier source2.cpp,
using namespace Partie2;
...
...
void Redraw();
...
...
ca evite de surcharger les noms des fonctions en leur mettant plein de suffixes/prefixes notamment -> CLARTE du code source