关闭

C++命名空间namespace

标签: C++命名空间namespace重名作用域
229人阅读 评论(0) 收藏 举报
分类:

1.namespace的作用

命名空间namespace是ANSI C++引入的可以由用户命名的作用域,用来处理程序中常见的重名冲突,不同的命名空间中可以存在名字相同的标识符而不会相互干扰,防止名字污染。

  在C语言中定义了3个层次的作用域,即文件(编译单元)、函数和复合语句。C++又引入了类作用域,类是出现在文件内的。在不同的作用域中可以定义相同名字的变量,互不于扰,系统能够区别它们。

2.程序例子

#include <iostream>
using namespace std;

namespace one
{
	int a = 10;
}

namespace two
{
	int a = 15;
}

int main()
{
	cout<<"one a = "<<one::a<<endl; //10
	cout<<"two a = "<<two::a<<endl; //15

	using namespace one;
	using namespace two;
	//cout<<"a = "<<a<<endl; //'a' : ambiguous symbol,编译器不知道哪个名字空间里的
	
	int a = 20; 
	cout<<"a = "<<a<<endl; //20

	return 0;
}

3.程序运行结果


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3468095次
    • 积分:43368
    • 等级:
    • 排名:第82名
    • 原创:253篇
    • 转载:273篇
    • 译文:253篇
    • 评论:263条