C++基础_1::命名空间

C++基础_1::命名空间


命名空间

我们经常见到的std里面就是C++标准库中的东西,而std就是命名空间,可以便于我们更加方便的使用


使用命名空间

在我们平时练习代码的时候经常会使用如下语句,将命名空间展开使用,但是在项目中不建议展开命名空间

using namespace std;

这行语句就是将标准库中的东西全部都展开


在项目中更加建议指定命名空间+展开常用的配合使用

using std::cout;
using std::endl;//展开常用的
int main()
{
    cout << 1 << endl;
    return 0;
}
/*------------------------*/
int main()
{
    int a = 0;
    std::cin >> a;//指定命名空间使用
    return 0;
}

自定义命名空间

自定义的命名空间使用与库命名空间使用是一致的

//自定义命名空间
namespace my_space
{
	int num = 100;//命名空间内的变量
	
	using std::cout;
	using std::endl;//在自定义命名空间中包含指定库中的命名空间    

    //命名空间内的函数
	int my_add(int a, int b)
	{
		return a + b;
    }
    
    //命名空间可以嵌套
    namespace my_space2
    {
        int num2 = 200;
    }
    
    //命名空间内的函数声明
	void my_swap(int* a, int* b);
}
void my_space::my_swap(int* a, int* b)//写在命名空间外的函数定义
{
	int tmp = 0;
	tmp = *a;
	*a = *b;
	*b = tmp;
}
//命名空间是开放的随时可以加入新的成员
namespace my_space
{
    int num3 = 300;
}



/*****************************************************/
//以下为测试片段
void text()
{
	for(int a = 0; a <= 10; a++)
	{
		my_space::num--;
	}
}
int main()
{
	std::cout << "my_space::num = " << my_space::num << std::endl;
	std::cout << "my_space::my_space2::num2 = " << my_space::my_space2::num2 << std::endl;
	std::cout << "my_space::num3 = " << my_space::num << std::endl;

	int a = 1;
	int b = 2;
	std::cout << "交换前: " << "a=" << a << ";b=" << b << std::endl;
	my_space::my_swap(&a, &b);
	std::cout << "交换后: " << "a=" << a << ";b=" << b << std::endl;

	std::cout << "my_space::my_add(my_space::num,b) = " << my_space::my_add(my_space::num, b) << std::endl;
	
	text();
	std::cout << "my_space::my_add(my_space::num,b) = " << my_space::my_add(my_space::num, b);


	return 0;
}

总结

1、在日常项目中,不建议全局展开所有命名空间,建议独个展开命名空间内常用的,在配合指定使用

2、命名空间可以自定义

3、自定义命名空间内可以存放变量(变量可以在外部修改)

4、自定义命名空间内可以存放函数,函数的定义和声明可以分离

4、自定义命名空间是开放的随时可以添加新成员而不影响内部其他成员

5、自定义命名空间可以嵌套
6、自定义命名空间中甚至可以包含指定库中命名空间中的成员


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值