码迷,mamicode.com
首页 > 编程语言 > 详细

c++新增的名字空间namespace

时间:2014-10-19 15:31:13      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   使用   strong   sp   

其实c也有此名字空间的概念

防止命名冲突,尤其是大型程序里很有用,节省精力,以免出错。可以全部引进,可以引进部分,还可以一个都不用。无所谓。

using namespace std;  //标准库的名字都放在std里面

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;//标准库里的东西都可以用了。一劳永逸的方法
 4 int main()
 5 {
 6     cout << "请输入姓名:" <<endl;
 7     string name;
 8     int age;
 9     cin >> name >> age;
10     cout << name << "您好,您的年龄:" << age 
11         << endl;//endl换行的作用,还有刷新缓存区
12     //c++里,main函数里的return 0可以省去,系统会自动添加
13     return 0;
14 }

如果标准库里只需要其中一部分:

using std::cout;
using std::cin;
using std::endl;
using std::string;

程序实际只需要四个标准库。::双冒号叫域操作符,A::B意思是A范围里的B。

定义自己的名字空间

 1 #include<iostream>//不是点h
 2 #include<string>
 3 using namespace std;
 4 namespace dashuai
 5 {
 6     string name="大帅";    //需要加上头文件
 7     int age = 24;
 8 }
 9 namespace lalala
10 {
11     char name[20]="啦啦啦";//重名没有问题,因为是不同名字空间里
12 }
13 
14 //使用名字空间下的东西,必须先声明
15 using namespace lalala;
16 using namespace dashuai;
17 int main()
18 {
19     cout << "我是" << dashuai::name << age << endl;
20     cout << "lalala" << lalala::name << endl;
21     return 0;
22 }

如果不加名字空间,那么会报错,有歧义。

注意:作用范围不同的标识符,原则上是局部优先,范围越小越先考虑。

1        cout << "我是" << dashuai::name << age << endl;
2 
3        cout << "lalala" << lalala::name << endl;
4 
5        string name = "aaaa";
6 
7        cout << name << endl;//这次打印的是aaaa

这里是局部优先的原则!这样编译是没有问题的,因为程序率先在main函数内部找到了name。

 

如果是一个全局变量,也要遵循局部优先原则,还是没有问题的,打印aaaa

如果想打印全局变量则使用::name

 1 string name = "全局变量";//
 2 int main()
 3 {
 4     cout << "我是" << dashuai::name << age << endl;
 5     cout << "lalala" << lalala::name << endl;
 6     string name = "aaaa";
 7     cout << ::name << endl;//这次打印的是全局变量
 8     system("pause");
 9     return 0;
10 }

注意:c++把没有放在名字空间里的变量认为放在了匿名名字空间,使用::就可以得到。实际开发的时候不会用那么多名字空间,一个就足够了。

直接使用名字空间的某一局部名

using dashuai::name;
using dashuai::age;

类比using std::cout;等语句。

 

c++新增的名字空间namespace

标签:style   blog   color   io   os   ar   使用   strong   sp   

原文地址:http://www.cnblogs.com/kubixuesheng/p/4034853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!