C++函数模板和普通函数的调用规则
C++函数模板和普通函数的调用规则:
普通函数可以进行自动类型转换。
函数模板必须严格类型匹配。
C++编译器优先考虑普通函数。
如果函数模板可以产生一个更好的匹配,那么选择模板。
可以通过空模板实参列表的语法限定编译器只能通过模板匹配。
代码如下:
#include <iostream>
using namespace std;template<typename T>
int myAdd(T a, T b)
{cout << "template function" << endl;return a + b;
}int myAdd(char a, char b)
{cout << "normal function" << endl;return a + b;
}void test01()
{int a = 10;int b = 20;char c1 = 'a';char c2 = 'b';myAdd(a, c1);myAdd(a, b);myAdd(c1, b);myAdd(a, b);myAdd(c1, c2);myAdd<>(c1, c2);
}int main()
{test01();return 0;
}
测试结果:
C++函数模板和普通函数的调用规则相关推荐
- 函数模板和普通函数区别
/***Copyright (c) 2018 Young Fan.All Right Reserved.*Filename: 2 函数模板和普通函数区别*Author: Young Fan*Date: ...
- C++中函数模板template和函数参数为指针,且有返回值的结合使用
1 #include<iostream> 2 using namespace std; 3 // 利用模板函数计算一个表达式 4 template<class Type> 5 ...
- C++ 普通函数与函数模板 区别以及调用规则01
//普通函数 和 函数模板 区别 int myPlus(int a, int b) {return a + b; }template<class T> T myPlus2(T a, T b ...
- c++模板---1(模板概念,利用模板实现数组排序,函数模板调用规则)
什么叫泛型编程?1. 参数类型化. 2. 模板 模板概念 c++提供了函数模板,所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表.这个通用函数就成为函数模 ...
- C++提高部分_C++普通函数与函数模板调用规则---C++语言工作笔记085
然后我们再来看一下普通函数和函数模板的调用规则 可以看到有4个, 1.如果函数模板和普通函数都可以地调用的时候,优先调用普通函数 2.可以通过空模板参数列表,强制调用,函数模板 3.函数模板可以发生函 ...
- 模板 (函数模板语法 ,类模板与函数模板的区别,:函数模板案例,普通函数与函数模板的区别,普通函数与函数模板调用规则,模板的局限性,类模板分文件编写.cpp,Person.hpp,类模板与友元)
**01:函数模板语法: #include<iostream> using namespace std;//交换两个整型函数 void swapInt(int &a ,int &a ...
- C++ 函数模板和排序的函数模板——学习笔记
我们在使用重载函数时,只是使用了函数名,而函数体还是得分别定义,在C++中函数模板为我们很好的解决了这个问题. 1.函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函 ...
- [转]C++函数模板与模板函数
1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数. 函数模板 ...
- C++编程进阶7(何时使用成员函数模板,模板类的实参推断与类型转换、继承与数组)
二十六.何时使用成员函数模板 关于成员函数模板见https://blog.csdn.net/Master_Cui/article/details/111824152 成员函数模板主要用来兼容不同类型的 ...
最新文章
- 如何快速而准确的获取生物体的遗传信息一直是生命科学 中的一个非常重要的研究点
- 为什么我们的web前端变的越来越复杂
- .NET的一点历史故事:作者的一些感想
- 运维编排场景系列----给实例加到SLS机器组
- uvc摄像头代码解析1
- 大数据对人们的好处_大数据有什么作用和优势
- Java中父子类引用的理解
- wpf webbrowser获取选中文本_网页文本高亮插件 web-marker
- 公式编辑器里面添加空格
- 我国计算机科学技术的成就,计算机科学技术百科全书
- Pytorch基础知识(7)单目标检测
- pixi.js 5.0_使用Pixi.js进行高级绘图
- 如何把微信公众号平台做成找券机器人并自动回复优惠券
- 国外的服务器国内可以直连吗,国内服务器和境外服务器有什么区别?
- C++ std::string::substr()
- 一文掌握华为全过程项目管理的方法步骤和具体动作【墙裂推荐】
- Grain加密代码求助
- 2020-08-14 理解 javascript 函数中的 curry
- 武汉大学计算机系王侃,武汉大学信息管理学院
- Voting mechanism
热门文章
- React-引领未来的用户界面开发框架-读书笔记(三)
- Android之如何实现阿拉伯版本(RTL)的recycleView的网格布局
- 用非递归方式实现二叉树后序遍历
- Android之多线程----异步消息处理机制之Handler详解
- C++入门指南及实战 第二步 HelloWorld及扩展详解
- 苹果android 对比,苹果安卓旗舰差距有多少?看了这份对比,果粉傻眼了
- linux创建目录目录文件,Linux创建目录和文件管理教程
- java junit4_JUnit4使用Java5中的单元测试
- matlab基于ssd的角点匹配_基于关键点的目标检测
- c语言随机数循环延迟,C语言生成随机数的函数、延时函数