using声明与using指示的区别(在作用域上)

在《C++ Primer》第五版十八章中详细描述了 using 指示与 Using 声明的区别,个人也想了好久。首先,明确一下 using 声明与指示

using 声明: using std::cout;

using 指示: using namespace std;

1.初步展示区别

在我们通常的理解下,using 声明引入了一个名字,在声明之后的作用域中,所有用到该名字的地方,都是指的改名字。而using 指示则是将命名空间中的所有名字都引入当前作用域,效果有些类似若干个 using 声明。但事实上,这两个是存在很大的不同的。看以下例子:

(1)对using 声明:

namespace N1
{
	int a = 0;
}

void f()
{
	using N1::a;  //此时下文中所有的 a 都将等效为 N1::a
	int a = 4;    //这句话将会导致编译器报重复定义的错误,因为 a 已经定义为 int a = 0,此时再次定义就重定义了
	cout << a &
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值