You know how you can enclose something inside braces and it is only visible inside the braces? Like:
int i; // visible only inside the braces
i = i + 1; // i isn't seen, or isn't the one in the braces.
That's called a variable's 'scope'
Well, namespaces allow you to NAME a scope, like this:
i = 0; // this is the 'i' declared inside THIS scope
Chainsaw::i = 0; // this is the 'i' declared inside the Chainsaw name space scope
Think of them as 'named globals', almost as if they belonged to a struct. But a namespace is not a description of things (like a struct would be), it is an implementation of things. That is, the Chainsaw::i was declared as a variable inside the namespace just as if it were a global variable.
can anyone please explain me about the concept of namespaces?
std is a namespace, and std::cout, refers to the object in std called cout.
So you can define an object called cout, without breaking the one definition rule. For example: In a large program, many programmers work together, and the possebility for several programmer have defined object with the same name, is huge. So if every programmer(or a programmer group) have defines a namespace, it doesn`t matter if several programmers have define the same name on several object`s as long as it`s in a namespace.