C++的空间

一、概述

C++ 的 命名空间 机制可以用来解决复杂项目中名字冲突的问题。

举个例子:C++ 标准库的所有内容均定义在 std 命名空间中,如果你定义了一个叫 cin 的变量,则可以通过 cin 来访问你定义的 cin 变量,通过 std::cin 访问标准库的 cin 对象,而不用担心产生冲突。

二、用法

如下所示,我们在程序中先定义命名空间,再使用。在主函数中用命名空间::函数名来调用。

#include <bits/stdc++.h>
namespace A{  //定义命名空间A
    int fun(int a){
        a++;
        return a;
    }
}
namespace B{  //定义命名空间B
    int fun(int a){
        a--;
        return a;
    }
}
using namesapce A;  //使用命名空间A
using namesapce B;  //使用命名空间B
int main(){
    int n, m, x;
    std::cin >> n >> m >> x;  //使用std的cin输入
    for(int i = 1; i <= n; i++){
        x = A::fun(x);  //使用命名空间A的fun函数
    }
    for(int i = 1; i <= m; i++){
        x = B::fun(x);  //使用命名空间B的fun函数
    }
    std::cout << x;  //使用std的cout输出
    return 0;
}

另外命名空间可以嵌套,如下所示

#include <bits/stdc++.h>
namespace A {
    namespace B {
        void f() { ... }
    }  //namespace B

    void f() {
        B::f();  //实际访问的是A::B::f(),由于当前位于命名空间 A内所以可以省略前面的A::
    }
}  //namespace A
void f(){  //这里定义的是全局命名空间的f函数,与A::f和A::B::f都不会产生冲突
    A::f();
    A::B::f();
}

注意定义完要写 using 指令:using namespace ……;

有了 using 指令,C++中的代码可以有这两种等价写法:

#include <bits/stdc++.h>

using namespace std;

int main() {
  int x, y;
  cin >> x >> y;
  cout << y << endl << x;
  return 0;
}
#include <bits/stdc++.h>

using std::cin;
using std::cout;
using std::endl;

int main() {
  int x, y;
  cin >> x >> y;
  cout << y << endl << x;
  return 0;
}

对于C++空间的讲解到这里就结束了,如果小编出现了什么错误请提出来噢 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值