C++基础---C语言部分3

一、函数模板:

模板是实现代码重用的重要工具,它方便大规模的软件开发。

C++的模板包括函数模板和类模板。

函数模板可以用来生成通用的函数,这些函数能够接受任意类型的参数,可返回任意类型的值,而不需要对所有可能的数据类型进行函数的重载。当编译器遇到函数调用时,将根据实参的类型和函数模板一起产生特定的代码。定义形式:

template  <类型参数表>
返回值类型    函数名   (  形式参数表  )
{
      //函数体  
}

其中:<类型参数表>称为通用数据类型,可以包含基本的数据类型

template <class T1 class T2> //模板
void swap(T1 var1 , T2 var2) {
T1 temp;
  temp = var1;
  var1 = (T1) var2;
  var2 = (T2) temp;
}

注意:1.函数模板仅仅是对函数长相的声明,其自身不占用代码区的内存,当编译器遇到函数调用时,将在内存的代码区创建一个函数。

2.函数模板的定义必须出现在函数调用之前。模板通常放在".h"头文件中。

C++不但支持函数重载,也支持函数模板重载。

 

C++内联函数:为了解决函数调用的效率问题。

方法在定义时,在前面加上inline关键字。

inline  bool isDigit (char  ch){
  return ch>='0' &&    ch<='9' ? true:false;
}//内联函数是以增加目标代码为代价来换取时间的。

inline仅适用于功能简单,代码短小且被重复调用的函数。

内联函数内不允许使用循环语句、switch语句和嵌套的if等。即使这样定义了,系统会将他们当作一般函数处理,达不到优化的目的。

如果函数定义在函数调用之后,那么在声明函数时,就需要加上inline,否则视为一般函数。

 

posted @ 2016-02-26 14:04  一将功成  阅读(118)  评论(0编辑  收藏  举报