overload
函数的重载我们知道,一个理论提出,必然是为了解决一些问题,为了理解重载,必须先从遇到的问题出发 例如我们想实现这样一个功能 绝对值函数abs,传入一个参数,返回它的绝对值 这看上去很简单,但是,函数声明时,已经声明了函数需要传入参数的类型,如果声明为整型,那么输入浮点型时就会报错, 在C语言中,根据不同的数据类型,有多个绝对值函数fbs,abs,lbs 这无疑加重了记忆负担,那么,是否可以用一个函数实现这个功能呢? 这就引出了函数重载的概念 overloaded 以下是重载函数的一个实例 通过calculateVolume计算不同立体图形的体积 由于不同立体图形的体积计算方式不同,因此需要传入不同的参数,由此需要使用函数的重载 但是注意,它们的返回值是一样的 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647#include<iostream>#include<cmath>using namespace std;const double ...
recurision
函数递归即函数内部调用自身,然后不停地寻找可以返回的值 因此递归必须要设置终止调用链 如使用if语句,在初始值处停止调用,return 初始值 下面是斐波那契数列的一个例子 12345678910int fibonacciRecurs(int a1,int a2,int n){ if(n == 1 || n == 2) { return a1; } int an = fibonacciRecurs(a1,a2,n-1) +fibonacciRecurs(a1,a2,n-2); return an;} 由于递归过程中每次函数内部的变量都会被重新初始化,因此可以考虑多传入参数 下面是求反转数字的例子 1234567891011int sum = 0;int reverseNumber(int n,int sum){ if(n>= 10) { sum = sum * 10 + n % 10; return reverseNumber(n/10,sum) } sum = sum * 10 + n % 10; return sum;}...