C++ namespace 命名空间

namespace即“命名空间”,也称“名称空间ios

那么这个 “名称空间” 是干啥的呢?spa

咱们都知道,C/C++中的做用域能够由一个符号 {} 肯定的blog

eg:资源

{作用域

int a = 1;get

int b = 2;string

};it

{io

int c = 3;class

int d = 4;

};

这在C/C++中是合法的,可是,这样有一个弊端,那就是相应的变量只能在对应的做用域内使用,出了做用域,就是叫每天不该,叫地地不灵了!

好在 C++ 解决了这个问题(咱也不知道人是否是针对我说的这个状况出现的namespace),不知道大家听懂了么。说的再通俗点。

比如如,张三家和李四家都有一个儿子,六五大喊 “儿子” ,是不能区别叫谁家的儿子的,张三叫儿子是称呼张三的儿子,李四叫儿子是李四家的儿子,但六五能够叫 “张三家儿子” 或者 “李四家儿子”,这样就能区分了。下面用代码实现这个功能!

1.项目包含了 src.h 头文件和 main.cpp 资源文件

2.src.h 代码:

#ifndef SRC_H_
#define SRC_H_

#include "string"

namespace ZS{

    std::string son = "张晓明";
}

namespace LS {

    std::string son = "李晓明";
}

#endif SRC_H_


3.main.cpp 代码:

#include <iostream>
#include "src.h"

using namespace std;

int main()
{
    cout << ZS::son << endl;
    cout << LS::son << endl;

    system("pause");
}


4.运行结果