C++——重载、缺省参数、命名空间

C++——重载、缺省参数、命名空间


C++的介绍

C语言几乎是C++的一个子集,所以C语言所支持的语法在C++都支持并使用。

C++关键字

C++——重载、缺省参数、命名空间

C++数据类型

基本数据类型

  • 字符型 char
  • 整型 int
  • 浮点型 float/double
  • 逻辑型 bool
  • 无类型 void

非基本数据类型

  • 数组 type[]
  • 指针 type*
  • 结构体 struct
  • 联合体 union
  • 枚举 enum
  • 类 class

**内置类型:**c++中的这些基本类型也称为内置类型,也就是语言内部已经定义的基本类型。
自定义类型:自己用struct/class/enum/unoin等定义的就是自定义类型。

C++为什么支持重载,C语言不支持?

函数重载允许两个或更多个函数使用同一个名字, 限制条件是它们的参数表必须不同: 参数类型不同参数的数目不同
根据不同的参数表,编译器就能够判断出,对某个特定的调用应该选择哪一个版本的重载函数

为什么C++支持重载而C语言中不支持呢?
主要是在编译期间,在库中生成的函数名不同。

  • C语言,在符号表中的函数标识是函数本身,就会存在两个同名函数。
  • C++,不是用原生的函数名,是函数名+参数(C++有函数名修饰规则,函数名+类型一起决定)

所以在编译器链接的时候,C语言因为函数名相同而会报错,而c++因为函数名不同而不会报错

缺省参数

缺省参数:缺省参数是声明或定义函数时为函数的参数指定一个默认值。在调用函数时,如果没有指定实参则采用该默认值,否者使用指定的实参。
缺省参数分两类:

  • 全缺省:所有的参数都有默认值,若无参数传入,则使用默认的参数;若传入了部分参数,参数将会从左到右进行匹配。
  • 半缺省:一部分参数带有值,带缺省值的参数必须放在参数最后边。因为传参是从右向左的。
    C++——重载、缺省参数、命名空间

命名空间

作用:命名空间是为了防止名字冲突提供更加可控的机制。命名空间分割了全局命名空间,其中每一个命名空间是一个作用域。
标准C++库中的所有组件都是在一个被称为std的名字空间中声明和定义的。在采用标准C++的平台上使用标准C++库中的组件,只要写一个using指示符: using namespace std;
就可以直接使用标准C++库中的所有成员。
或者 std::成员 的方式也可以使用C++库里的成员。
:: 是作用域解析符