栏目分类:
子分类:
返回
文库吧用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
文库吧 > IT > 软件开发 > 后端开发 > C/C++/C#

C++using声明与using编译指令

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++using声明与using编译指令

using声明和using编译指令
#define _CRT_SECURE_NO_WARNINGS
#include
using namespace std;

namespace YuanShen
{
	int HuTao = 100;
}

void func01()
{
	int HuTao = 648;

	//using 声明  注意避免二义性问题
	//写了using声明后  下面这行代码说明以后看到的HuTao是应是用YuanShen下的
	//但是,编译器又有就近原则
    //这个就造成了冲突,计算机不知道使用YuanShen下的HuTao还是就近用最近的HuTao
	//这就是二义性
	//using YuanShen::HuTao;

	cout << HuTao << endl;
}

//using编译指令
namespace YuanShen
{
	int ZhongLi =100;
}
void func02()
{
	int ZhongLi = 648;
	//using编译指令
	using namespace YuanShen; //打开原神这个房间,这里只是打开了房间,但是并没用直接调用
	cout << ZhongLi<< endl;//因此这个里按照就近原则,输入的应该是648.
    // 注:当打开多个房间时,也应该注意二义性。
}


int main(){

	func01();
	func02();
	system("pause");
	return EXIT_SUCCESS;
}

    注意:使用using声明或using编译指令会增加命名冲突的可能性。也就是说,如果有名称空间,并在代码中使用作用域解析运算符,则不会出现二义性。

命名空间使用

        需要记住的关键问题是当引入一个全局的using编译指令时,就为该文件打开了该命名空间,它不会影响任何其他的文件,所以可以在每一个实现文件中调整对命名空间的控制。比如,如果发现某一个实现文件中有太多的using指令而产生的命名冲突,就要对该文件做个简单的改变,通过明确的限定或者using声明来消除名字冲突,这样不需要修改其他的实现文件。

转载请注明:文章转载自 www.wk8.com.cn
本文地址:https://www.wk8.com.cn/it/1038129.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 wk8.com.cn

ICP备案号:晋ICP备2021003244-6号