Namespace defines a new scope for the variables while it keeps the concept and the purpose of the variable clear. Now, you could have a variable named cout in another namespace other than std without any confliction with the cout variable in the std namespace.