博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c++模版函数
阅读量:4569 次
发布时间:2019-06-08

本文共 903 字,大约阅读时间需要 3 分钟。

1.定义

可以使用class或者typename字段来申明

template 
template

2.作用

使用函数模版可以达到重载的目的,针对参数类型不同函数实现一致的情况。

3.使用

#include 
using namespace std;namespace tmp{/*函数模版: T代表一种数据类型*/template
T min(T x, T y){return (x < y)?x:y;} /*函数模版: T1和T2代表两种不同的数据类型*/template
void max(T1 x, T2 y){cout << "T1="<< x << endl;cout << "T2="<< y << endl;}} int main(void){#if 0int a1 = 2, a2 = 4;double d1 = 1.3, d2 = 2.3;cout << "较小的整数:" << tmp::min(a1, a2) << endl;cout << "较小的实数:" << tmp::min(d1, d2) << endl;#endiftmp::max(3, 4.5);tmp::max("123", 3);return 0;}

4.原理

函数模板只是声明了一个函数的描述即模板,不是一个可以直接执行的函数,只有根据实际情况用实参的数据类型代替类型参数标识符之后,才能产生真正的函数。

5.应用规则

a. 寻找一个参数完全匹配的函数,若找到就调用它。若参数完全匹配的函数多于一个,则这个调用是一个错误的调用。

b. 寻找一个函数模板,若找到就将其实例化生成一个匹配的模板函数并调用它。

c. 若上面两条都失败,则使用函数重载的方法,通过类型转换产生参数匹配,若找到就调用它。

d. 若上面三条都失败,还没有找都匹配的函数,则这个调用是一个错误的调用。

转载于:https://www.cnblogs.com/tml839720759/p/5458696.html

你可能感兴趣的文章
嵌入式SQL
查看>>
HDOJ(HDU) 2133 What day is it(认识下Java的Calendar类---日期类)
查看>>
甲级1002 A+B for Polynomials (25)
查看>>
centos部署flask
查看>>
hdu 4507 吉哥系列故事——恨7不成妻
查看>>
C与C++ 无参函数的区别
查看>>
WPF DesiredSize & RenderSize
查看>>
快速开发第一个SpringBoot应用
查看>>
表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列
查看>>
HTML video标签 兼容总结
查看>>
锡瓦塔内霍 墨西哥 / 巴克斯顿 /
查看>>
css+html应用实例1:滑动门技术的简单实现
查看>>
C++智能指针 auto_ptr
查看>>
Direct3D 索引缓存
查看>>
Eclipse开发环境的配置
查看>>
Java集合框架的学习
查看>>
elasticsearch结构化查询过滤语句-----4
查看>>
P4783 【模板】矩阵求逆
查看>>
Bootstrap 警告框(Alert)插件
查看>>
centos7 离线源码安装 postgresql-9.6.6
查看>>