• C++命名空间


    -------siwuxie095

       

       

       

       

       

    C++命名空间(namespace)

       

       

    什么是命名空间:

    简言之,就是为程序划片取名字

       

       

       

       

       

    程序中的命名空间:

    如:A 公司的程序库 与 B 公司的程序库(二者毫无联系),

    都将卖给 C 公司

       

       

       

       

    如果 C 软件公司购买了 A 公司和 B 公司的程序库,想使用

    A 公司的变量 x 和 B 公司的函数 f1,怎么办?

    〔 C 公司怎么办,A 公司和 B 公司如何写自己的代码,

    所以 A 公司和 B 公司要使用命名空间 〕

     

       

    (即 为什么要有命名空间)

       

       

       

    解决方案:

    使用命名空间 namespace

       

       

       

    命名空间定义方法:

       

       

       

    命名空间使用方法:

       

       

       

       

       

       

    如:

       

    #include<stdlib.h>

    #include <iostream>

    using namespace std;

       

    namespace A

    {

    int x = 1;

    void fun()

    {

    cout << "A" << endl;

    }

    }

       

    namespace B

    {

    int x = 2;

    void fun()

    {

    cout << "B" << endl;

    }

    void fun2()

    {

    cout << "2B" << endl;

    }

    }

       

    using namespace B;

    int main(void)

    {

    cout << A::x << endl;

    B::fun();

    fun2();

    system("pause");

    return 0;

    }

    //或者去掉 using namespace B; 与上面等价

    //int main(void)

    //{

    // cout << A::x << endl;

    // B::fun();

    // B::fun2();

    // system("pause");

    // return 0;

    //}

       

       

    vs2013中:

       

       

       

       

       

       

    或者:

       

    //或者去掉 using namespace std; 与上面整体等价

    #include "stdlib.h"

    #include <iostream>

       

    namespace A

    {

    int x = 1;

    void fun()

    {

    std::cout << "A" << std::endl;

    }

    }

       

    namespace B

    {

    int x = 2;

    void fun()

    {

    std::cout << "B" << std::endl;

    }

    void fun2()

    {

    std::cout << "2B" << std::endl;

    }

    }

       

    using namespace B;

    int main(void)

    {

    std::cout << A::x << std::endl;

    B::fun();

    fun2();

    system("pause");

    return 0;

    }

       

       

    vs2013中:

       

       

       

       

       

       

       

       

    再如:

       

    #include<stdlib.h>

    #include <iostream>

    using namespace std;

       

    namespace myNum //填写命名空间的关键字

    {

    int x = 105;

    }

       

    int main()

    {

    // 使用bool类型定义isOdd,作为状态位

    bool isFlag = false;

       

    if (myNum::x % 2 == 0)

    {

    //改变状态位的值,使其为false

    isFlag = false;

    }

    else

    {

    //改变状态位的值,使其为true

    isFlag = true;

    }

    // 判断状态位的值

    if (isFlag)

    {

    // 如果状态位的值为true,则打印变量x是奇数

    cout << myNum::x << "是奇数" << endl;

    }

    else

    {

    // 如果状态位的值为false,则打印变量x是偶数

    cout << myNum::x << "是偶数" << endl;

    }

    system("pause");

    return 0;

    }

       

       

    vs2013中:

       

       

       

       

       

       

       

    【made by siwuxie095】

       

       

  • 相关阅读:
    考试总结 模拟69
    考试总结 模拟68
    考试总结 模拟67
    考试总结 模拟66
    20190722 NOIP模拟测试7 考后反思
    20190719 NOIP模拟测试6 (考后反思)
    星际旅行(欧拉路,欧拉回路)(20190718 NOIP模拟测试5)
    20190718 NOIP模拟测试5 考后反思
    [POJ2942]Knights of the Round Table(点双+二分图判定——染色法)
    奇袭(单调栈+分治+桶排)(20190716 NOIP模拟测试4)
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6388397.html
Copyright © 2020-2023  润新知