美文网首页
【记1】命名空间

【记1】命名空间

作者: CozyMoonquake | 来源:发表于2018-05-27 15:41 被阅读0次

C++和C语言一个很大的区别就是具有namespace命名空间。
一、命令空间的变量定义。
方式一:直接在main函数里分别定义命名空间的每个变量。

#include<iostream>
int main(void)
{
    int a;
    std::cin>>a;
    std::cout<<"a="<<a<<std::endl;

    return 0;
}

方式二:在main函数之前分别定义命名空间的每个变量。

#include<iostream>
using std::cin;
using std::cout;
using std::endl;
int main(void)
{
    int a;
    cin>>a;
    cout<<"a="<<a<<endl;

    return 0;
}

方式三:最简单的方法,一般都采用这种方法,即直接在main函数之前定义using namespace std。

#include<iostream>
using namespace std;
int main(void)
{
    int a;
    cin>>a;
    cout<<"a="<<a<<endl;

    return 0;
}

二、命名空间的定义。
定义一个名为SpaceA的命名空间,此处采用了命名空间变量定义的方式三,方式二和方式一可见注释。

#include<iostream>
using namespace std;
namespace SpaceA
{
    int g_a=100;
}
int main(void)
{
    using namespace SpaceA;
    //方式二:using SpaceA::g_a;
    cout<<g_a<<endl;
    //方式三:cout<<SpaceA::g_a<<endl;
    return 0;
}

三、定义空间的嵌套。
使用定义空间的嵌套时,一定要注意引用时要引用到底,否则会引起歧义,导致出错。

#include<iostream>
using namespace std;
namespace SpaceB
{
    namespace SpaceC
    {
        struct student
        {
            int id;
            char name[64];
        };
    }
}
int main(void)
{
    SpaceB::SpaceC::student s1;
    //using SpaceB::SpaceC::student;
    //s1.id=10;
    //using namespace SpaceB::SpaceC;
    struct student s1;
    s1.id=20;

    cout<<s1.id<<endl;
}

相关文章

网友评论

      本文标题:【记1】命名空间

      本文链接:https://www.haomeiwen.com/subject/mdbbjftx.html