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

目录

命名空间

命名空间的定义

命名空间的用法

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

C++入门之容易忽视的namespace和函数重载_第1张图片

 2.对部分常用的展开

使用作用域限定符 ::

C++入门之容易忽视的namespace和函数重载_第2张图片

你可能感兴趣的:(c++,开发语言,后端)