//普通函数 和 函数模板 区别
int myPlus(int a, int b)
{return  a + b;
}template<class T>
T myPlus2(T a, T b)
{return a + b;
}void test01()
{int a = 10;int b = 20;char c = 'c';cout << myPlus(a, c) << endl; //隐式类型转换 将 char c转为 int类型//myPlus2(a, c); //自动类型推导方式 ,不可以进行隐式类型转换的,但是显示指定类型方式可以进行隐式类型转换}//普通函数 和 函数模板 调用规则
template<class T>
void myPrint(T a, T b)
{cout << "函数模板调用" << endl;
}/*
//假设传入T是int类型 ,生成一个 下面的函数,这个函数 称为 模板函数
void myPrint(int a, int b)
{
cout << "函数模板调用" << endl;
}
*/
template<class T>
void myPrint(T a, T b , T c)
{cout << "函数模板调用myPrint(T a, T b , T c)" << endl;
}void myPrint(int a, int b)
{cout << "普通函数调用" << endl;
}void test02()
{//1、如果普通函数和函数模板可以同时调用,优先使用是普通函数int a = 0;int b = 0;//myPrint(a, b);//2、如果想强制调用 函数模板中的内容,可以使用空参数列表//myPrint<>(a, b);3、函数模板 可以发生函数重载//myPrint(a, b, 10);//4、如果函数模板可以产生更好的匹配,那么优先使用是函数模板char c = 'c';char d = 'd';myPrint(c, d);
}
int main(){//test01();test02();system("pause");return EXIT_SUCCESS;
}
  1. 普通函数和函数模板的区别以及调用规则
    1.1 区别:
    a. 普通函数可以隐式类型转换
    b. 函数模板如果是自动类型推导的使用方式, 是不可以发生隐式类型转换
    如果函数模板在调用的时候显示的指定了T的类型,是可以发生隐式类型转换的。 比如 funcTemplate(a, b);
    1.2 调用规则:
    a. 如果函数模板和普通函数都可以实现调用, 那么优先调用的是普通函数
    b. 可以通过空参数列表语法来强制调用 函数模板
    c. 函数模板也可以发生函数重载
    d. 如果函数模板可以产生更好的匹配, 优先使用的是函数模板

C++ 普通函数与函数模板 区别以及调用规则01相关推荐

  1. 普通函数与函数模板的区别

    普通函数与函数模板区别: 普通函数调用时可以发生自动类型转换(隐式类型转换) 函数模板调用时,如果利用自动类型推导,不会发生隐式类型转换 如果利用显示指定类型的方式,可以发生隐式类型转换 #inclu ...

  2. 问模板函数、函数模板,模板类、类模板的区别的问题?

    问模板函数.函数模板,模板类.类模板的区别的问题? - 赵保龙 - 博客园 问模板函数.函数模板,模板类.类模板的区别的问题? 在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替 ...

  3. C++提高部分_C++普通函数与函数模板的区别---C++语言工作笔记084

    然后我们再来,看一下普通函数和函数模板的区别,可以看到 有3点 我们用例子去说明一下, 可以看到上面我们提供了一个myAdd01,这个两个数相加的普通函数. 然后写个测试类去调用一下

  4. 类模板与函数模板区别

    类模板与函数模板区别主要有两点 类模板没有自动类型推导的使用方式 类模板在模板参数列表中可以有默认参数 测试代码 #include <iostream> #include <stri ...

  5. 模板 (函数模板语法 ,类模板与函数模板的区别,:函数模板案例,普通函数与函数模板的区别,普通函数与函数模板调用规则,模板的局限性,类模板分文件编写.cpp,Person.hpp,类模板与友元)

    **01:函数模板语法: #include<iostream> using namespace std;//交换两个整型函数 void swapInt(int &a ,int &a ...

  6. python中的方法和函数的区别_python中函数与方法的区别?

    Python中函数不是方法,主要有以下区别: 首先,从分类的角度来分析二者的区别 (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函数:自己调用自 ...

  7. python中函数和方法的区别

    本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...

  8. c++ 函数模板_C/C++编程笔记:C++入门知识,深入解析C++函数和函数模板

    本篇要学习的内容和知识结构概览 函数的参数及其传递方式 1. 函数参数传递方式 传值: 传变量值: 将实参内存中的内容拷贝一份给形参, 两者是不同的两块内存 传地址值: 将实参所对应的内存空间的地址值 ...

  9. c++模板---1(模板概念,利用模板实现数组排序,函数模板调用规则)

    什么叫泛型编程?1. 参数类型化. 2. 模板 模板概念 c++提供了函数模板,所谓函数模板,实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表.这个通用函数就成为函数模 ...

最新文章

  1. Leetcode 179. 最大数 解题思路及C++实现
  2. js日期初始化总结:new Date()参数设置
  3. 操作云数据库出现Access denied for user ‘common_1‘@‘%‘ to database ‘seata_storage‘
  4. linux+eth0+流量监控,linux流量监控脚本 | 旺旺知识库
  5. 【转载】恼人的函数指针(一)
  6. 创新 - 王屋村的魔方们
  7. 【script】python实现多线程将doc、docx转pdf,doc转docx
  8. pandas数据合并与重塑_PANDAS 数据合并与重塑(concat篇)
  9. 用几何语言表示线段ab的中点c,做完这30道精选题,你的几何图形绝对满分!
  10. NameError: name 'words' is not defined
  11. AngularJs -- 模 块
  12. mysql canal 安装测试_canal安装配置与mysql操作监听,我已经帮你踩过了所有的坑...
  13. 多个容器一起打包_Docker从入门到掉坑(三):容器太多,操作好麻烦
  14. 什么软件画er图方便_图形图表设计器(Diagram Designer中文版)
  15. CPU内部看门狗,外部看门狗以及软件看门狗
  16. 移动直播元年:内容单一,80%流量靠网红主播
  17. 微信能上网但是浏览器无法上网,原因在于上次关机时加速器忘记关闭,解决办法如下
  18. uber司机已经激活了,就是还没有上传头
  19. 微信营销KPI考核标准有哪些?
  20. 子集生成算法 之 位向量法和增量构造法

热门文章

  1. Huffman树学习
  2. LoadRunner
  3. Cesium调用Geoserver发布的 WMS、WFS服务
  4. Appscan_web安全测试工具 (含修改启动浏览器的方法)
  5. 文献综述写作之“结构内容”
  6. 虚拟机Linux图形界面配置NAT-桥接
  7. codeforces 703B
  8. Codeforces Round #102 (Div. 1) A. Help Farmer 暴力分解
  9. APIO2015 酱油记
  10. 看了本书《答案在你心中》里面的很多问题都蛮有意思!!!