名空间(namespace)

本文详细解释了C++中命名空间的概念、作用和使用方法,并通过实例展示了如何利用命名空间避免全局对象或函数重名的问题,以及如何在不同名空间内合理组织类、对象和函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用名空间(namespaces)我们可以将一组全局范围有效的类、对象或函数组织到一个名字下面。就是它将全局范围分割成许多子域范围,每个子域范围叫做一个名空间(namespaces)

语法:

namespace identifier
{
  named_entities
}

 

identifier 是一个有效的标示符,named_entities 是该名空间包含的一组类、对象和函数例如:
namespace myNamespace
{
  int a, b;
}
要想在这个名空间外面访问这两个变量,我们必须使用范围操作符::
myNamespace::a
myNamespace::b
而且名空间还可以避免全局对象或函数有可能重名而造成重复定义的错误,例如:

//namespaces
#include <iostream>
using namespace std;

namespace foo
{
  int value() { return 5; }
}

namespace bar
{
  const double pi = 3.1416;
  double value() { return 2*pi; }
}

int main () {
  cout << foo::value() << '\n';
  cout << bar::value() << '\n';
  cout << bar::pi << '\n';
  return 0;
}

输出:

5
6.2832
3.1416

两个都叫做value函数同时存在,一个在名空间foo 下面定义,另一个在 bar下面定义,由于我们使用了名空间,这里不会产生重复定义的错误。

 

一个代码的两端也可以分开写在同一个名空间下,如:

namespace foo { int a; }
namespace bar { int b; }
namespace foo { int c; }

变量a和c在同一个名空间foo下,b在bar下。
 

 

转载于:https://www.cnblogs.com/guozqzzu/p/3586450.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值