• 函数模板和模板函数


    1.函数模板是为了解决同一函数体对不同类型数据的处理而产生的东西,只有当程序中需要调用模板函数时,函数模板会根据程序调用传入的不同参数生成不同的模板函数,以供程序调用使用,类似重载,但是也有不同之处;函数模板分为3类:分别是具有类型参数的函数模板、变量参数的函数模板、多参数函数模板;

    2.类型参数函数模板示例:

    1 //用类型作为参数的函数模板,声明
    2 void display(T a){
    3     cout<<a<<endl;
    4 }
    5 
    6 display<int>(10);//调用;1.1、测试一下类型作为模板函数参数的情况,传入一个int类型的参数进去
    7 display<double>(10.89);//1.2、传入一个double类型的参数进去
    View Code

    3.多参数函数模板示例:

    1 //这里的typename和class的作用是一样的,都是声明一个模板参数
    2 template<typename T,class S>
    3 void display(T a,S b){
    4     cout<<a<<endl;
    5     cout<<b<<endl;
    6 }
    7 
    8 display<int,char>(20,'a');//2、测试一下多参数函数模板,传入一个int类型的参数和一个char类型的参数进去
    View Code

    4.变量参数函数模板示例:

    1 //用类型和变量作为参数的函数模板,这里的size在实例化的时候通常会作为一个常量
    2 template<typename T,int size>
    3 void display(T a){
    4     for(int i = 0;i < size;i++){
    5         cout<<a<<endl;
    6     }
    7 }
    8 
    9 display<char,10>('b');//3、测试一下类型和变量作为参数的函数模板,传入一个char类型的参数,输出10次‘b
    View Code
  • 相关阅读:
    AVR汇编初探之二《AVR的指令与汇编系统》
    Fedora 18 装完后干的事
    重建tempdb
    sqlserver 2008 r2 SqlClrProvider报错解析
    Analysis Memory In Sqlserver
    《设计模式之禅》学习笔记(七)
    容易弄错的繁体字
    《C Primer Plus》学习笔记
    什么是 Windows 能干而 Linux 干不了的事情
    MySQL中BLOB字段类型介绍
  • 原文地址:https://www.cnblogs.com/upup-2015/p/5042795.html
Copyright © 2020-2023  润新知