名字空间是一种描述逻辑分组的机制。也就是说,如果有一些声明按照某种准则在逻辑上属于同一个集团,就可以将它们放在同一个名字空间,以表明这个事实。
名字空间在C++中更多是用来避免类名的冲突,这在小的项目中可能看不出来,因为头文件和源文件比较少,类名冲突的概率比较小,但当你遇到一个很大的工程项目时,你就会认识到名字空间的使用还是很有必要的。
不想讲的太复杂,就是仅仅在这里写一个例子好了。
头文件nameA.h中定义了一个point类,然后把point类放在名字空间Anamespace中了。如下:
1
#include
<
iostream
>
2 using namespace std;
3 namespace Anamespace
4 {
5 class point
6 {
7 public :
8 point()
9 {
10 x = 10 ;
11 y = 10 ;
12 }
13 void showpoint()
14 {
15 cout << x << " " << y << endl;
16 }
17 private :
18 int x;
19 int y;
20 };
21 };
2 using namespace std;
3 namespace Anamespace
4 {
5 class point
6 {
7 public :
8 point()
9 {
10 x = 10 ;
11 y = 10 ;
12 }
13 void showpoint()
14 {
15 cout << x << " " << y << endl;
16 }
17 private :
18 int x;
19 int y;
20 };
21 };
源文件如下,注意:在包含头文件nameA.h后,也要在后面用using namespace Anamespace;这一句来表示使用名字空间Anamespace,否则会出现编译错误。
1
#include
<
iostream
>
2 #include " nameA.h "
3 using namespace Anamespace;
4 using namespace std;
5 int main()
6 {
7 point a;
8 a.showpoint();
9 return 0 ;
10 }
2 #include " nameA.h "
3 using namespace Anamespace;
4 using namespace std;
5 int main()
6 {
7 point a;
8 a.showpoint();
9 return 0 ;
10 }