1。Inline function
内联函数不是在调用时发生控制转移,而是在编译时将函数体嵌入在每一个调用语句处。
优点:节省了参数传递、控制转移等开销
缺点:若将一个复杂的函数定为内联函数,代码会膨胀,开销增大;
注意:
(1)内联函数内一般不能有循环语句和switch语句;
(2)内联函数定义应该出现在第一次调用之前
(3)对内联函数不能进行异常接口声明
通常内联函数是比较简单的函数,结构简单、语句少。
语法形式:
inline 类型说明符 被调用函数名(含类型说明的型参表)
2。带默认型参的函数
函数在定义时可以预先定义出默认的型参值。调用时如果给出 实参,则用实参初始化型参;如果没有实参,则采用预先定义的默认型参值。
注意:默认型参值必须按从右往左的顺序定义。
3。函数重载
C++提供了对函数重载的支持
两个以上的函数,取相同的函数名,但是型参的个数或者类型不同,编译器根据实参和型参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。
常见错误:
(1)编译器不能以型参名来区分函数
(2)编译器不能以返回值来区分函数
4。函数模板
当算法需要处理不同的数据类型的时候,即使设计成重载函数,函数体仍然需要分别定义。
C++ 的重要特性之一就是代码重用,代码必须通用的,不受数据类型的影响--参数化的程序设计(使用数据类型作为参数),使用模板来构造。
定义形式:
==================
template <typename 标识符>
函数定义
==================