Generally using namespace std; is shorthand for 'I don't know how to program C++'. Let me explain A namespace is a way of avoiding name clashes. namespace a { int i; } namespace b { int i; } Now I have two i's, I can access them like this: a::i = 2; b::i = 4; I could also do this: using namespace a; i = 2; // = a::i b::i = 4; BUT what if I had a third, global i ? Then this would not work. And that illustrates the problem with 'using namespace std'. std contains a TON of stuff, and it MAY contain more in the future than it does now, or different implimentation details under different implimentations of C++. So this means you have no idea what you are including, or if it will break the code sometime in the future, if it does not now. Instead you should do this: namespace a { int i; int c; } namespace b { int b; int d; } int i; using a::c; using b::d; a::i = 2; c = 7; d = 5; Seperate using statements for those parts of std you want to use are the way to go. For more 'real' examples of this, check out the use of 'using' in all my STL articles on CP. Christian I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002 Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002