一直使用using指明命名空间,但是没搞清楚,特地记录一下

using声明和using编译指令:目的都是为了简化对命名空间中的名称的使用

* using声明:使特定的标识符可用
* using编译指令:让整个命名空间中的名称可用
(1)using声明:如果局部变量和using声明同时出现在函数作用域内会出现问题
#include <iostream> using namespace std; namespace Android{ int num = 10; } int
main(){ using Android::num; cout << num << endl; return 0; }
输出:10
#include <iostream> using namespace std; namespace Android{ int num = 10; } int
main(){ int num =20; using Android::num; cout << num << endl; return 0; }
输出:报错

但是你将using Android::num移到main函数外面,就不会报错啦

(2)using编译指令:如果出现同名的变量,不会报错,使用就近原则
#include <iostream> using namespace std; namespace Android{ int num = 10; } int
main(){ using namespace Android; cout << num << endl; return 0; }
输出:10
#include <iostream> using namespace std; namespace Android{ int num = 10; } int
main(){ int num = 20; using namespace Android; cout << num << endl; return 0; }
输出:20

当然啦,你将using namespace Android放在main函数外面更没有问题,还是输出20

技术
下载桌面版
GitHub
百度网盘(提取码:draw)
Gitee
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:766591547
关注微信