类成员函数

类成员函数就是类中定义的函数。这样的函数都是成员函数,用以完成特定操作。类设计时成员函数的访问类型一般设为public公有的,这样就可以将成员变量都封装起来,更加安全。一般设计图:

注意一点定义成inline内联成员函数时,此函数体一定是比较小的,比如SetID(),GetID()两个成员函数,函数体只有一句语句。如果成员函数体比较大时,不要写成inline内联成员函数,这样是滥用影响性能。
成员函数重载方法可以参考函数重载,其实是一样的。只是它是类里面的函数,所以叫成员函数,也是函数所以跟函数重载一样。

递归函数

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

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

可变参数函数

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

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

函数重载二义性

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

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

函数重载overloaded

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