c++ 中的函数模板
Posted nanqiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 中的函数模板相关的知识,希望对你有一定的参考价值。
#include <iostream> using namespace std; template <typename T> void fun(T a) { cout << "void fun(T1 a)" << endl; } template <typename T1, typename T2> void fun(T1 a, T2 b) { cout << "void fun(T1 a, T2 b)" << endl; } void fun(int a, float b) { cout << "void fun(int a, float b)" << endl; } void main() { int a = 0; float b = 0.0; fun(a); fun(a, b); //普通函数void fun(int a, float b)已经能完美匹配,于是调用普通函数 fun(b, a); //这个调用,函数模板有更好的匹配,于是调用函数模板 fun<>(a, b); //限定只使用函数模板 system("pause"); }
编译器会优先去调用普通函数,但是当函数模板有更好的匹配时或使用限定符<>时,编译器就会去匹配函数模板。
总结
- 函数模板是泛型编程在C++中的应用方式之一
- 函数模板能够根据实参对参数类型进行推导
- 函数模板支持显示的指定参数类型
- 函数模板是C++中重要的代码复用方式
- 函数模板通过具体类型产生不同的函数
- 函数模板可以定义任意多个不同的类型参数
- 函数模板中的返回值类型必须显示指定
- 函数模板可以像普通函数一样重载
---------------------
作者:火焰山大白菜
来源:CSDN
原文:https://blog.csdn.net/lms1008611/article/details/81985815
版权声明:本文为博主原创文章,转载请附上博文链接!
以上是关于c++ 中的函数模板的主要内容,如果未能解决你的问题,请参考以下文章
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情