C++入门之容易忽视的namespace和函数重载

本文介绍了C++中的命名空间,包括其定义、用法,如直接展开std、部分展开和指定命名空间。此外,还讲解了函数缺省参数的全缺省和半缺省情况,以及C++支持函数重载的原因,涉及到预编译、编译、汇编和链接的各个阶段。最后,提到了extern "C"用于按照C语言规则编译函数的情况。
摘要由CSDN通过智能技术生成

目录

命名空间

命名空间的定义

命名空间的用法

 1.直接把std整个展开

 2.对部分常用的展开

 3.指定命名空间

缺省参数

全缺省:(所有的参数都指定一个默认值)

半缺省:(只有部分被参数指定默认值,而不是一半的参数)

 函数重载

 那么为什么C语言不支持函数重载,C++支持呢?

 extern "C"


命名空间

在C/C++中,变量、函数都是大量存在的,这些变量、函数的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。

命名空间的定义

定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{},花括号中即为命名空间的成员。

//1. 普通的命名空间
namespace N1  // N1为命名空间的名称 
{
	// 命名空间中的内容,既可以定义变量,也可以定义函数 
	int a;
	int Add(int left, int right)
	{
		return left + right;
	}
}

命名空间的用法

C++库为了防止命名冲突,把自己库里面的东西都定义在一个std的命名空间中要使用标准库中的东西;有三种方式

 1.直接把std整个展开

把std整个展开,相当于库里面的东西都到全局域了。看起来方便了,但是我们自己定义的东西跟库冲突了就没办法解决了,这个对于日常练习时可以使用

 2.对部分常用的展开

使用作用域限定符 ::

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值