模版函数
来源:互联网 发布:汽车解剖软件 编辑:程序博客网 时间:2024/05/01 10:59
一、函数模版
1、概念:
C++提供了函数模板(function template)。
所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体指定,用一个虚拟的类型来代表。
这个通用函数就称为函数模板。
凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。
在调用函数时系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。
2、定义方式
//声明Template
//替换参数类型Func(T a)
3、调用
(1)自动数据类型推导
func(a);
(2)显示类型调用
Func(a);
二、函数模版遇上函数重载
1、区别:
普通函数可以自动进行隐性转换,而模版函数不可以;
例如:
普通函数:void print(int a,int b)
模版函数:void Myprint(T a,T b)
Main()
{
Char a = ‘a’;
Int b = 10;
//分别用两种函数混合调用
Print(a,b); 结果65,10,字符自动转换成int类型
Myprint(a,b)//编译出错,不让通过;
}
2、模块函数重载
首先知道模版函数会和普通函数一样被重载,所以当一个普通函数遇到一个模版函数的时候也是重载
(1)编译器默认先调用普通函数;
(2)如果模版函数产生一个跟好的匹配,那么会调用模版函数
(3)想调用模版函数的话就模版实参列表的语法来让编译器只调用模版函数func<>(a);
阅读全文
0 0
- 模版函数
- 模版函数
- 模版函数
- 函数模版
- 函数模版
- 函数模版
- 函数模版
- 模版函数
- 函数模版
- 模版函数
- 函数模版
- 函数模版与模版函数
- 模版——函数模版、类模版
- 类模版中函数模版
- 函数模版与类模版
- 函数模版和类模版
- 模版笔记001 - 函数模版
- 函数模版和类模版
- 聊天功能,实现:每增加一条消息整体往上移动,滚动查看聊天记录
- ELK日志处理之使用logstash收集log4J日志
- linux更改系统权限
- cocos2dx基础——图层类
- String字符串
- 模版函数
- Python如何安装requests等第三方库
- error LNK2019, LNK1120
- 返回局部最小元素
- 深浅拷贝及番外引用计数机制
- 策略模式
- Django rest framework API Guide的 Views 翻译
- zookeeper集群配置
- C# DataTable 排序