3.1命名空间和的using声明


到目前为止,我们使用到的库函数基本都属于命名空间std,而程序也是显示的将这一带你标示出来,std::cin,作用域操作符(::)的意思是:编译器应该从操作符左侧名字的作用域中寻找右侧的那个名字。

上面的那个方法很繁琐,我们将使用一种最安全的方法using声明,之后将会介绍另一种方法。

首先就是using的用法

using namespace::name;

那么就有接下来的这段:

#include<iostream>
using std::cin;


int main()
{
	int i;
	cin >> i;          //1
	cout << i;         //2
	std::cout << i;    //3
	return 0;
}
  1. 正确,cin有std:: cin的声明
  2. 错误,没有对应的using声明,必须使用完整的名字
  3. 正确,显式的从std中使用cout

每个名字都需要使用using声明

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

#include<iostream>
using std::cin;
using std::cout;
using std::endl;

int main()
{
	int i;
	cin >> i;         
	cout << i<< endl;         
	return 0;
}

如此的话看着每需要一个函数就要定义一次,很呆。所以我们现在先不用了解怎么弄,先这样子

#include<iostream>
using namespace std;

int main()
{
	int i;
	cin >> i;         
	cout << i<< endl;         
	return 0;
}

之后会再进行了解namespace。

头文件不应该包含using声明

位于头文件中的代码一般来说不应该使用using声明。这是因为头文件的内容会拷贝到所有引用它的文件中去,如果头文件中有using声明,那么每个使用了该头文件的文件就会有这个声明。对于某些程序员来说,由于不经意间包含了一些名字,反而可能产生始料未及的名字冲突。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值