码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++基础:函数模板


    为了代码重用,代码必须是通用的;通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数,这种类型的程序设计称为参数化程序设计,软件模板有模板构造,包括函数模板和类模板。

    函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计,函数模板的定义如下:

    template<模板参数表>

    返回类型 函数名 (形式参数表)

    {

               .......;//函数体

    }

    <模板参数表>尖括号中不能为空,参数可以有多个,用逗号分开,模板参数主要是模板类型参数。

    模板类型参数代表一种类型,由关键字class或typename(建议用typename)后加一个标识符构成,在这里两个关键字的意义相同,它们表示后面的参数名代表一个潜在的内置或用户设计类型。
    如下所示:

    1. template<typename T> //class typename
    2. T Max(T a, T b)
    3. {
    4. cout << "a type" << typeid(a).name() << endl;
    5. cout << "T type" << typeid(T).name() << endl; //对类型进行识别
    6. return a > b ? a : b;
    7. }
    8. int main()
    9. {
    10. cout << Max(12, 23) << endl;
    11. cout << Max('a','b') << endl;
    12. cout << Max(12.23,34.45) << endl;
    13. }

      函数模板根据一组实际类型或值构造出独立的函数的过程通常是隐式发生的,称为模板实参推演。

    1. template<typename T,int N>
    2. void PrintAr(T (&br)[N])
    3. {
    4. cout << sizeof(br) << endl;
    5. }
    6. int main()
    7. {
    8. int ar[10] = { 1,2,3,4,5,6,7};
    9. double dx = {1.2,2.3,3.4,4.5,5.6};
    10. //typename +elemnum;
    11. PrintAr(ar);
    12. PrintAr(dx);
    13. return 0;
    14. }

  • 相关阅读:
    RabbitMQ消息可靠性保证机制--发送端确认
    3.3 Institution
    integrin + Receptor ; platelet ; Ig-CAM
    备忘录模式 行为型模式之八
    微电网与电动车蓄电池优化(Matlab代码实现)
    苹果与芯片巨头Arm达成20年新合作协议,将继续采用芯片技术
    小知识·Git常用命令
    JAVA后台 SpringBoot 配置
    手部IK,自制动画,蒙太奇——开门手臂自动弯曲、靠墙手自动扶墙
    Git创建本地项目推送至Gitee
  • 原文地址:https://blog.csdn.net/hmh520i/article/details/134055653
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号