Bootstrap

Qt C++ 命名空间namespaces讲解

一、概述

命名空间 namespace 将一组去哪聚范围内有效的类、对象或者函数组织到一个命名的名字下边,将全局范围分割成多个子域,每个子域就叫做命名空间。作用是在大工程中避免多个类和文件出现相同的成员名称。

命名空间使用的格式为:

namespace xxx_name
{
    //变量
    //对象
    //函数等
}

例如:

namespace myspace
{
    int age;
    int weight;
    class book;
    setid(int id);
}

age、weight是命名空间myspace中的整型变量。

两个使用方法:

  1. 在使用该变量之前时声明using namespace myspace;
  2. 要在这个命名空间外去使用的话,需要用到范围操作符,双冒号,“::”。

例如:

myspace::age
myspace::weight

二、示例

#include <iostream>

using namespace std;

namespace val_first
{
    val = 100;
}

namespace val_second
{
    val = 200;
}

int main()
{
    using namespace val_second;
    cout << var <<endl;
    return 0;
}

编译输出结果为:200。

三、标准命名空间

ANSI C++ 标准定义、标准C++库中的所有类、对象和函数都是定义在命名空间std中,例如,上述示例代码中的cout和endl标准输出流在声明了“using namespace std”之后,可以直接使用cout和endl,否则报错。

;