VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 821|回复: 2

[交流] 关于using namespace 的解释

[复制链接]
96_avatar_middle
最佳答案
0 
online_vip 发表于 2017-4-22 13:57:19 | 显示全部楼层 |阅读模式
不废话,直接上代码:
void test()
{
        cout << _T("外部函数");
}
namespace a
{
        int  i;
        i = 0;
        void test()
        {
                cout <<_T("命名空间内的函数")
        }
};
int main()
{
        test();  // 执行的结果是, 打印了“外部函数”
        a::test();//执行的结果是,打印了“命名空间内的函数”
        //cout << i;    这段代码被注释了,如果不注释,代码是编译不通过的,因为它找不到变量i。
        using namespace a;  // 这段代码的含义就是告诉编译器,我准备使用命名空间a里的数据。
        cout << i;  // 此时这段代码打印出数据,0;
        test();   //此时这段代码执行的结果是,“命名空间内的函数”。
}

究竟为什么要使用命名空间namespace 呢?
那是因为编写大工程的软件程序的时候,有可能程序中的函数名称相同,这样的话,为了保护每个人编写的代码不受重名的影响,
所以使用namespace 将每个人编写的代码保护起来,需要执行谁的代码,那就在函数前面加上a::(上面红色的代码)或者using namespace a;(上面红色的代码)
那么,你在执行test()函数就会是命名空间namespace a中的函数了。




上一篇:关于C语音语法*和&amp;的使用小总结
下一篇:5K找人帮忙更新 或重新开发
96_avatar_middle
最佳答案
0 
ico_lz  楼主| 发表于 2017-4-22 14:14:02 | 显示全部楼层
补充:
上图代码可能执行的时候会有错误,或者无法编译通过。
主要是为了给大家解释清楚用。
另外在说一句,::test(); //这句的含义是执行全局的函数test,全局的函数就是没有命名空间包裹的函数,如上面代码的第一个出现的test()函数就是全局函数。
57_avatar_middle
最佳答案
0 
在线会员 发表于 2017-4-23 11:22:35 | 显示全部楼层
好  说的清楚
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-12-10 18:07

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表