C++当然也是有函数的,而且跟C基本一致,但增加了很多新的特性。关于函数的定义、声明、调用等跟C一致的内容我就不说了,下面只记载一下学到的新东西。
一、函数重载
简单的说,就是函数名相同、函数参数表不同(参数类型或者个数不同)的几个函数构成重载,系统可根据参数自动判定调用哪个函数。如:
int max(int a, int b) { ...... } double max(double a, double b, double c) { ...... } ......
但注意,函数类型并不是决定函数重载是否正确的条件,也就是说参数表相同,函数名相同,只有函数类型不同,是不能正确构成重载的,如下面就是错误的:
int max(int, int) { ...... } double max(int, int) { ...... }
系统无法知道到底调用哪一个。
所以,函数重载:
1、函数名相同;2、形参个数或形参类型至少有一个不相同。
二、带默认参数的函数
int add(int a=10, int b=10, int c=10) { return a+b+c; }
这样,如果调用时是:add(),得出的结果就是30,若是add(2),那么得出结果是22,以此类推……
只是要注意的是,默认形参只能放在靠右,如以下几种是错误的:
int add(int a=1, int b=2, int c); int add(int a=1; int b, int c=3); ......
另外值得一提的是,带默认参数的函数和函数重载不要一起用,容易搞混。
原文:http://www.cnblogs.com/HappyCtest/p/5165620.html