学习笔记-递归,重载
2007-10-29 18:03
239 查看
1.递归:直接或间接调用自己 的函数 被称为递归函数(recursive function)。递归函数必须定义一个停止条件stopping condition 否则函数会永远递归下去有时候这被称作无限递归(infinit recursion)错误。
阶乘的计算可以用递归函数实现
unsigned long factorial( int val )
{
if ( val > 1 )
return val * factorial( val-1 );
return 1;
}
2.重载。函数重载(function overloading)允许多个函数共享同一个函数名但是针对不同参数类型提供共同的操作。在C#/C++中可以为两个或多个函数提供相同的名字只要它们的每个参数表惟一就行,或者是参数的个数不同,或者是参数类型不同。
如果两个函数的返回类型和参数表精确匹配则第二个声明被视为第一个的重复声明
如果两个函数的参数表相同但是返回类型不同则第一个声明被视为第一个的错误重复声明会被标记为编译错误
如果在两个函数的参数表中只有缺省实参不同则第二个声明被视为第一个的重复声明
3.除了静态(static)数据成员外,其它数据成员不能在类体中被显式地初始化,而必须通过类的构造函数进行初始化。——即是说,一个类的静态数据成员、静态方法可以直接调用,而非静态的则须将类实例化后才能使用。——但静态方法不宜多用。
阶乘的计算可以用递归函数实现
unsigned long factorial( int val )
{
if ( val > 1 )
return val * factorial( val-1 );
return 1;
}
2.重载。函数重载(function overloading)允许多个函数共享同一个函数名但是针对不同参数类型提供共同的操作。在C#/C++中可以为两个或多个函数提供相同的名字只要它们的每个参数表惟一就行,或者是参数的个数不同,或者是参数类型不同。
如果两个函数的返回类型和参数表精确匹配则第二个声明被视为第一个的重复声明
如果两个函数的参数表相同但是返回类型不同则第一个声明被视为第一个的错误重复声明会被标记为编译错误
如果在两个函数的参数表中只有缺省实参不同则第二个声明被视为第一个的重复声明
3.除了静态(static)数据成员外,其它数据成员不能在类体中被显式地初始化,而必须通过类的构造函数进行初始化。——即是说,一个类的静态数据成员、静态方法可以直接调用,而非静态的则须将类实例化后才能使用。——但静态方法不宜多用。
相关文章推荐
- Java基础学习笔记 -- 11(方法、重载、递归)
- C#学习笔记之——重载
- Objective-C学习笔记(二十七)——方法的重载与重写
- 学习笔记-小甲鱼Python3学习第二十二讲:函数:递归是神马
- 20170722学习笔记之使用递归
- java学习笔记 使用递归 将文件目录树形结构输出,递归删除目录 文件夹。
- 算法学习笔记之三:八皇后问题(递归、回溯)
- 它处资料:数据结构学习笔记(12.递归的应用之八皇后回溯算法)
- 重载与命名空间(学习笔记)
- C++学习笔记17——函数重载
- Python学习笔记之递归
- C++学习笔记之 函数重载和函数指针在一起
- [javase学习笔记]-4.4 函数的重载
- c语言学习笔记-递归1
- 【C++】学习笔记三十七——递归
- 【学习笔记】【C语言】递归
- 055day(赋值运算符的重载和运算符重载为友元函数,例题算24(递归)学习)
- java入门程序100例学习笔记(005递归调用)
- C#学习笔记----第三周(数组、递归、对象)(1)
- 递归删除文件夹 学习笔记