一、重载函数
在C语言中,如果我们定义两个同名的函数,编译器会提醒并报错,但有时我们会发现有的函数功能及其相似,却碍于C语言的规定而必须命名不同的函数,比如说用于交换两个数的函数:Swap1(int,int)和Swap2(float,float), 而在C++中,我们可以将这两个函数用同一个名字进行命名,而这就是我们接下来要学习的重载函数的功能。
就如同在汉语中,同一个字有多重含义。在C++中,一个函数也可以根据不同的环境选择不同的功能。汉字要看语境,而函数要看的则是传进来的参数。
函数重载:C++允许在同一作用域中声明几个功能类似的同名函数,但这些同名函数的形参列表 (参数个数或参数类型或类型顺序)必须不同。
#include<iostream>
using namespace std;
int Add(int x,int y)
{
return x + y;
}
1.参数个数不同
int Add(int x,int y)
{
return x + y;
}
2.参数类型不同
double Add(double x,int y)
{
return x + y;
}
3.参数顺序不同
double Add(int x,double y)
{
return x + y;
}
二、引用
2.1、引用的概念
2.1.1、概念
引用并非是新定义出一个变量,而是给已经存在的变量起一个别名。它与它引用的变量共用一块内存空间。
2.1.2、书写方式
类型& 引用变量名(对象名)=引用实体
int a = 10;
int& b = a;
b即为a的别名,改变b即可改变a。
2.2、引用特性
1、引用在定义时必须初始化;
2、一个变量可以有多个引用;
3、引用一旦引用一个实体,就不可以引用其他实体。
int a = 10;
//int& b; 必须初始化,不然编译时会出错
int& b = a;
int& rb = a;//可以有多个引用
注意:引用常量时,需加const进行修饰。
2.3、功能
由于改变引用变量就可以改变其对应的本体变量,因此可以用它来代替指针。
如:用int Add(int& a,int& b)来代替int Add(int* a,int*b)。
2.4、与指针的区别
1. 引用概念上定义一个变量的别名,指针存储一个变量地址。
2. 引用在定义时必须初始化,指针没有要求。
3. 引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何