要点:

1、模板参数在实体化的时候不能自动类型转换,只有非模板函数才可以

例如:

int max(int,int);

template <class T>

T max(T,T);

在调用的时候:max('a',42)只会调用非模板函数。

max<>(1,3)用于指定调用模板函数。

max<>(2,3.1)调用模板函数,但是会出错,因为模板函数不支持将形参从float转换为int

2、模板函数和非模板函数可以重载

3、如果模板在实际调用的时候得到更好的匹配,则用模板

如:max(4.0,2.0)和max('a','b')调用模板max

template学习一函数模板的更多相关文章

  1. C++ template学习一(函数模板和模板函数)

    函数模板和模板函数(1)函数模板函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数.函数模板的声明形式为:templat ...

  2. Template 基础篇-函数模板(待看

    Template 基础篇-函数模板 Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分. Template ...

  3. C++模板学习:函数模板、结构体模板、类模板

    C++模板:函数.结构体.类 模板实现 1.前言:(知道有模板这回事的童鞋请忽视) 普通函数.函数重载.模板函数 认识. //学过c的童鞋们一定都写过函数sum吧,当时是这样写的: int sum(i ...

  4. C++学习33 函数模板

    在<C++函数重载>一节中,为了求三个数的最大值,我们通过函数重载定义了三个名字相同.参数列表不同的函数,如下所示: //求三个整数的最大值 int max(int a, int b, i ...

  5. C++学习之函数模板与类模板

    泛型编程(Generic Programming)是一种编程范式,通过将类型参数化来实现在同一份代码上操作多种数据类型,泛型是一般化并可重复使用的意思.泛型编程最初诞生于C++中,目的是为了实现C++ ...

  6. C++ template学习二 类模板定义及实例化

    一个类模板(也称为类属类或类生成类)允许用户为类定义一种模式,使得类中的某些数据成员.默写成员函数的参数.某些成员函数的返回值,能够取任意类型(包括系统预定义的和用户自定义的). 如果一个类中数据成员 ...

  7. [c++][语言语法]函数模板和模板函数 及参数类型的运行时判断

    参考:http://blog.csdn.net/beyondhaven/article/details/4204345 参考:http://blog.csdn.net/joeblackzqq/arti ...

  8. C++:函数模板与模板函数

    6.1 模板的概念 C++允许用同一个函数定义函数,这些函数的参数个数和参数类型不同.例如求最大值的max函数, int max(int x,int y) {       return (x>y ...

  9. [C++程序设计]函数模板

    定义函数模板的一般形 式为 template < typename T> 或 template <class T> 函数模板: 函数参数个数,函数体相同.参数类型不同 函数重载 ...

随机推荐

  1. add number

    // io.cpp #include <iostream> int readNumber() { std::cout << "Enter a number: &quo ...

  2. iOS 开发 常用的正则验证表达式:电话 、邮箱等等

    #pragma mark - 验证手机号 +(BOOL)checkForMobilePhoneNo:(NSString *)mobilePhone{ NSString *regEx = @" ...

  3. Scala映射

    #映射: 包含一组键值对应元素的集合 val Z=Map(a1->b1,...)  //a1如果是字符,需要用双引号括起来 val Z=Map((a1,b1),...) ##可变映射, 内容可更 ...

  4. excel中的TEXT函数

    TEXT 函数可将数值转换为文本,并可使用户通过使用特殊格式字符串来指定显示格式. TEXT(value, format_text) value  必需.数值.计算结果为数值的公式,或对包含数值的单元 ...

  5. mysql查询表的数据大小

    在需要备份数据库里面的数据时,我们需要知道数据库占用了多少磁盘大小,可以通过一些sql语句查询到整个数据库的容量,也可以单独查看表所占容量. 1.要查询表所占的容量,就是把表的数据和索引加起来就可以了 ...

  6. 升级到macos sierra xcode8 requires additional components to support runing and debugging choose Install to add required components

    升级到macos sierra xcode8 报提示:requires additional components to support runing and debugging choose Ins ...

  7. 第九周PSP

     工作周期:11.10-11.17 本周PSP: C类型 C内容 S开始时间 ST结束时间 I中断时间 T净时间(分) 文档 写随笔(PSP) 19:00min 22:00min 30min 90mi ...

  8. ajax 异步加载显示等待效果

    css: #loading { width:170px; height:25px; border:3px solid #C3DAF9; position:absolute; top:300px; le ...

  9. MVC 之 WebAPI 系列一

    1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...

  10. cassandra的写过程

    如下: Message, get a new request,type:QUERY      //channelRead0函数 Message, get a new request,customPay ...