一、重载的概念
- 编程中重载是指函数名相同,函数的参数列表不同(包括参数个数和参数类型),至于返回类型可同可不同。
- 重载是可使用相同函数、运算符等处理不同类型数据或接受不同个数的参数的一种方法。
二、运算符重载的概念
- 运算符重载,就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。
- 重载的运算是具有特殊名字的函数:它们的名字由关键字operator和其后要定义的运算符号共同组成:
- 返回类型 operator运算符(参数列表);
三、运符符重载为函数
- 运行符重载为函数的参数数量应与该运算符的运算对象数量一样多。一元运算符有一个参数,二元有两个参数。参数的类型应该根据运算符要操作的对象类型决定。
- 比如说,我们希望重载运算符支持CompleNumber的加法,则运算符会操作两个CompleNumber对象:
- CompleNumber c1 c2;
- CompleNumber c3=c1+c2;
- 以下运算符是不能重载的:
- 条件运算符 (?:)
- 作用域运算符 (::)
- 成员指针运行符 (.*)
四、运算符重载为成员函数
如果要将运算符重载为成员函数,则运算符的第一个操作的元素为当前对象(也就是this指针),如果有第二个操作的元素则由参数指定,因此,运算符重载为成员函数的参数数量比运算符重载为函数的参数数量少一个。
1、默认参数的概念
函数的默认参数值,即在定义参数的时候同时给它一个默认值,在调用函数传参的时候,可以省略含有默认值的参数。
例如:
void func(int i=0;int j=1);
注意事项:
默认参数的值是严格按照从右至左的顺序指定。
默认参数的值只能在声明或定义中一处指定,不能同时指定
默认参数和函数重载会出现二义性问题,如:
void func(); 和void func(int i=0);