关于函数模板和函数重载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于函数模板和函数重载相关的知识,希望对你有一定的参考价值。

1 内联函数:

    1 取消了函数调用的环节。

    2 对于内联代码,程序无需调到另一个位置执行代码,再跳回来。因此,内联函数的运行速度比常规的快,,但占用的空间业更多。

    3 要成为内联函数,要在函数定义或者声明前加关键字 inline

    例如:inline int square()

{

 

}

 

    4 内联函数中不允许用循环语句和switch语句

    5 内联函数的声明必须出现在内联函数第一次调用之前

 

 

2  函数重载

  1 函数名相同,参数不同,或者是函数类型不同

  例如:   void swap(int a,int b)

      void swap(float a,float b)

      int swap(float a,float b)

 

 

3 函数模板

    概念:使用虚拟类型来定义函数

模板定义:

template <typename T>

void swap(T a,T b);

 

 

在函数中 比如 int i = 10; int j = 20;

       swap(i,j);

      比如 char i = 10; char j = 20;

       swap(i,j);

类型会自动转换

 

    模板的局限性:类型不能是数组,结构体之类的

 

    

以上是关于关于函数模板和函数重载的主要内容,如果未能解决你的问题,请参考以下文章

为啥具有“相同签名”的模板和非模板函数重载调用非模板函数?

函数模板遇上函数重载

C++中函数模板和模板函数的区别

函数重载与函数模板 - C++

函数模板遇上函数重载

数据的间距问题(重载+函数模板)