Cons of using the whole namespace in C++
A namespace is a declarative region that provides a scope to the identifiers (the names of types, functions, variables, etc) inside it. Namespaces are used to organise code into logical groups and to prevent name collisions that can occur especially when your code base includes multiple libraries.
Please refer need of namespace in C++ for details.
Suppose we need two header files for a software project :
1: Header1.h
-namespace one
2: Header2.h
-namespace two
C++ Code :
Header1.h :
namespace one
{
void print()
{
std :: cout << "This is one" << std :: endl;
}
}
|
Header2.h
namespace two
{
void print()
{
std :: cout << "This is two" << std :: endl;
}
}
|
Source code file
#include <iostream>
#include "Header1.h"
#include "Header2.h"
using namespace std;
using namespace one;
using namespace two;
int main()
{
print();
}
|
Output:
Error: Call of overloaded print() is ambiguous.
To overcome this situation, we use namespace objects independently
through scope resolution operator.
Source code file
#include <iostream>
#include "Header1.h"
#include "Header2.h"
int main()
{
one :: print();
two :: print();
}
|
Reference :
http://www.cplusplus.com/forum/beginner/25538/
https://stackoverflow.com/questions/1452721/why-is-using-namespace-std-considered-bad-practice
Advance sub-domains of namespace :https://www.geeksforgeeks.org/namespace-in-c-set-2-extending-namespace-and-unnamed-namespace/https://www.geeksforgeeks.org/namespace-c-set-3-creating-header-nesting-aliasing-accessing/
GeeksforGeeks Namespace archive
Last Updated :
15 Jun, 2017
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...