c++笔记_命名空间


一、命名空间的using声明

1.作用域操作符号

作用域操作符(::)的含义是:编译器应从操作符左侧名字所示的作用域中寻找右侧那个名字。比如std::cin的意思就是要使用命名空间std中的名字cin。

2.使用using声明

如果每次使用std::cin这种形式编写代码会比较烦琐,这时候我们可以使用using声明,有了using声明就无须专门的前缀(命名空间::)也能使用所需的名字了。

using声明语法:

using namespace::name;

一旦使用上面的语句,就可以直接访问命名空间中的名字:

#include<iostream>
//using声明,当我们使用名字cin时,从命名空间std中获取它
using std::cin
int main(void)
{
   
	int i;
	cin >> i;			//正确:cin和std::cin含义相同
	cout << i;			//错误:没有对应的using声明,必须使用完整的名字
	std::cout << i;		//正确:显示地从std中使用cout
	return 0;
}

3.每个名字都需要独立的using声明

按照规定,每个using声明引入命名空间中的一个成员。例如,可以把要用到的标准库中的名字都以using声明的形式表示出来:

#include<iostream>
//通过下列using声明,我们可以使用标准库中的名字
using std::cin
using std::cout;
using std::endl;
int main(void)
{
   
	int i;
	cin >> i;			//前面using声明了,可以直接使用cin
	cout << "使用命名空间" << endl;	前面using声明了,可以直接使用cout和endl
	return 0;
}

上述代码,一开始就有对cin,cout和endl的using声明,所以我们不用再添加std::形式的前缀就能直接使用它们。

二、using声明和using编译指令

1.限定和未限定的名称

未被装饰的名称称为未限定的名称。包含名称空间的名称被称为限定名称:

int i = 0;		//i是未限定的名称
A::b;			//b是限定的名称

2.using声明和using编译指令区别

我们并不希望每次使用名称时都对它进行限定,因此C++提供了两种机制来简化空间中名称的使用,分别是using声明和using编译指令。

using声明使特定的标识符可用,using编译指令使整个名称空间可用。

//using声明由限定的名称和它前面的关键字using组成
using std::cin;
//using编译指令由名称空间和它前面的关键字using namespace组成
using namespace std;

3.using声明的全局作用域

using声明在代码快外,那么它的作用域就是全局:

#include<iostream>
namespace A{
   
	int a = 100;
}
using A::a;		//对命名空间A中成员a进行声明

int main(void)
{
   
	std::cout<<"a="<<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值