递归函数

递归函数就是自己调用自己,这样就是递归调用。在数学上,关于递归函数的定义如下:对于某一函数f(x),其定义域是集合A,那么若对于A集合中的某一个值X0,其函数值f(x0)由f(f(x0))决定,那么就称f(x)为递归函数。

递归函数在定义是一定要记得加结束递归的条件,不然会一种递归下去“无穷递归”。fun1递归函数结束条件是 if(n==1),在设计递归函数时根据实阶选择结束递归条件,切记!!!

可变参数函数

可变参数函数设计一般用在参数个数不是固定时,比如要设计一个相乘函数,但参数个数在定义时不知道要多少个,在函数调用时才能确定。定义可变参数要用到几个宏

可变参数可以解决参数不个数不固定问题,但处理还是比较麻烦。一般像这种参数个数不固定我在定义函数时,参数设计成:vector或都传指针和个数。

函数重载二义性

二义性就是有两个意义,两个意义都合理。这种问题在C++语言中会有发生,像函数重载时就有可能会发生二义性问题。写一段代码来让大家能清楚的理解函数重载二义性。

以上只是举函数重载方面的二义性问题,还有别的特性也会有二义性产生,比如继承。对于二义性问题编译器是比较没有办法优化的了,这类问题只能在程序设计时就避免掉,不要有二义性产生。

函数重载overloaded

上篇简单介绍了一下函数重载(overloaded)部分,这篇将写个实例来说一下函数重载(overloaded)。函数重载(overloaded),简单讲就是函数名一样,其它地方不一样(返回类型或参数)。重载可以让同样功能,不同类型的函数有同样的名字。在编程时应该都会有这种苦,就是想函数名如何取。用重载可以减少这种取名代来的痛苦。