C++ - namespace

C++ 学习笔记

C++ namespace

为什么要有 namespace ?

  • 如果我们有两个一样的函数?
  • 使用第三方库的时候,有一样的函数?
  • namespace 的主要目的就是为了防止 命名冲突
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <vector>
#include <string>
#include <iostream>
#include <functional>

namespace apple
{
void print(const char* text)
{
std::cout << text << std::endl;
}

void print_again();
}

namespace orange
{
void print(const char* text)
{
std::string temp = text;
std::reverse(temp.begin(), temp.end());
std::cout << temp << std::endl;
}
}

// 程序的主函数
int main()
{
// namespace 的别名
namespace a = apple;
a::print("a");

// 只使用 namespace 中的某一个方法
using apple::print;
print("aasdf");
apple::print_again();

std::cout << "ok" << std::endl;
return 0;
}