C++ namespace 命名空间

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

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

我们都知道,C/C++中的作用域可以由一个符号 {} 确定的

eg:

{

int a = 1;

int b = 2;

};

{

int c = 3;

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.运行结果

原文地址:https://www.cnblogs.com/viplanyue/p/12700551.html