zoukankan      html  css  js  c++  java
  • 函数探幽 — 函数模板

    函数模板是通用的函数描述,也就是说,他们使用泛型来来定义函数,其中泛型可以用具体的类型(如int或者double)替换

    模板函数的声明

    函数模板的定义

    模板本身不创建任何函数,而只是告诉编译器如何定义函数。当需要交换int的函数时,编译器将按模板模式创建这样的函数,并用int代替AnyType

           class与typename这两个关键词是等价的,只不过在这里typename更加易于理解,但是在代码库中class用的更多

    上下两个模板等价

    如果需要多个将同一个算法用于不同类型的函数,请使用模板。

    如果不考虑向后兼容的问题,并愿意键入较长的单词,则声明类型参数时,应使用关键字typename而不使用class

    函数模板不会缩短可执行程序。

    重载的模板

    需要多个不同类型使用同一个算法的函数时,可使用模板

    但并非所有类型都使用相同算法  所以有了重载模板定义

    并非所有的模板参数都必须是模板参数类型。

    模板也有很大的局限性

    如函数定义部分有赋值操作   ,而数值类型变为了数组  a=b;(不能通过编译),

    如函数定义部分有<,但数值类型(anytype)为结构,if(a>b)便无法比较

    如函数定义了乘法,T c=a*b;但数据类型(T)为数组,指针或结构将出现error

    显示具体化

  • 相关阅读:
    对称加密和非对称加密
    SpringMVC 请求调用过程
    Swagger2常用注解和使用方法
    玩转汉诺塔
    java序列化
    判断当前时间是否在某时间段内
    docker限制容器日志大小
    MySQL数据库备份与恢复
    MySQL事物
    MySQL用户
  • 原文地址:https://www.cnblogs.com/gc612/p/9922607.html
Copyright © 2011-2022 走看看