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

    显示具体化

  • 相关阅读:
    MySQL-sql语句
    常见IP端口
    Java开发异常
    微信开发-charles抓包
    6、分组查询
    5、关联查询
    4、查询
    3、表的管理
    2、用户管理
    1、oracle基本使用
  • 原文地址:https://www.cnblogs.com/gc612/p/9922607.html
Copyright © 2011-2022 走看看