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