名字空间

关键字

namespace

目的

解决名字冲突

基本知识

  1. 名字空间是一个人为定义的作用域
  2. 类也是一种名字空间

使用

定义
名字空间里可以定义变量、函数、类
可以名字空间里声明函数,名字空间外定义
可以合并声明

名字空间断开声明,会被合并

访问
namespaceName::变量名
std::cout << "hello world!" << std::endl;
std::cout << "123" << std::endl;

每个都要加,略显麻烦

using namespaceName::变量名
using std::cout;
using std::endl;
cout << "hello world!" << endl;
cout << "123" << endl;

把某个变量的访问权限对这个文件开放
个人比较喜欢这个写法

using namespace namespaceName
using namespace std;
cout << "hello world!" << endl;
cout << "123" << endl;

把名字空间内的所有内容对该文件开放访问权限
容易造成名字空间污染

别名

点样同距起花名呢?

namespace ns
{
    //什么变量啊
    //什么类啊
    //什么函数啊
    //什么嵌套的名字空间啊
}
namespace reference = ns;
int main()
{
     reference::ns的内容;
}
嵌套

按照定义域正常访问就得啦,同域名甘,好易理解噶

namespace ns1
{
    int a = 1;
    namespace ns2
    {
        int a = 2;
    }
}
int main()
{
    cout << ns1::a << endl;//1
    cout << ns1::ns2::a << endl;//2
}
嵌套类
  1. 被嵌套类基本上就是嵌套类外的东西了,对象空间不包含//就系冇么拉leng啰
  2. 但是被嵌套类可以无条件访问嵌套类的静态成员和类型名称(类)
意义

隐藏代码(商业意义)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值