C++——命名空间

目录

命名空间的作用

命名空间的定义

正常定义

命名空间可以嵌套定义

一个工程中定义多个名字相同的命名空间

命名空间的使用

加命名空间名称和作用域限定符(::)

将命名空间的某个成员导入

将整个命名空间导入


 


命名空间的作用

命名空间是为了避免因为大量变量名,函数名或者类名造成的名字冲突问题,而对标识符的名称进行本地化的手段

命名空间实际上是一种作用域,作用域包括:全局域,局部域,命名空间域和类域

例如:

在C语言中:

​
#include<stdio.h>
#include<stdlib.h>

int main()
{
    int rand = 0;
    //...
    return 0;
}

​

自定义的变量rand与库函数的rand函数同名,会报错:重定义


命名空间的定义

命名空间要使用namespace关键字,后面加空间名,再在后面的{ }里写命名空间的成员

正常定义

namespace bantal
{
	int rand;
	char ch;
	struct data
	{
		int size;
		int arr[100];
	};

	int Add(int a, int b)
	{
		return a + b;
	}
}

命名空间可以嵌套定义

namespace bantal
{
	int rand;
	char ch;
	namespace in
	{
		struct data
		{
			int size;
			int arr[100];
		};

		int Add(int a, int b)
		{
			return a + b;
		}
	}
}

一个工程中定义多个名字相同的命名空间

//在bt.hpp中定义:
namespace bantal
{
	int jk;
}

//在test.cpp中定义
namespace bantal
{
	int rand;
	char ch;
	namespace in
	{
		struct data
		{
			int size;
			int arr[100];
		};

		int Add(int a, int b)
		{
			return a + b;
		}
	}
}

命名空间的使用

  • 加命名空间名称和作用域限定符(::)

int main()
{
    bantal::rand = 10;
    printf("%d", bantal::rand);
    return 0;
}
  • 将命名空间的某个成员导入

using bantal::ch;

int main()
{
    ch = a;
    printf("%c", ch);
    return 0;
}
​

​
  • 将整个命名空间导入

using namespace bantal;

int main()
{
    printf("%d", rand);
    return 0;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值