C++模板——(1)模板的概念

归纳编程学习的感悟,
记录奋斗路上的点滴,
希望能帮到一样刻苦的你!
如有不足欢迎指正!
共同学习交流!
🌎欢迎各位→点赞 👍+ 收藏⭐ + 留言​📝
创造机会的人是勇者,等待机会的人是愚者!

一起加油!

前言:

        逻辑功能相同而类型不同的函数,可以通过重载实现统一方式(相同接口),不同实现(不同功能)的调用。重载提高了编程的灵活性,但有时重载的两个函数逻辑功能基本一样,只是参数类型不同,几乎相同的代码要重复编写,十分烦琐。此时可以利用模板来减少重复编码工作。模板是实现代码复用的一种工具,是参数多态的一种体现,是提高软件开发效率的一个重要手段。

模板的概念: 

        函数和类本身是一种抽象,可以解决一类问题,模板是在抽象的基础上再抽象,它可以实现类型参数化,把类型定义为参数,实现代码的复用。从而使得抽象后的函数或类可以处理多种数据类型,这种能处理多种数据类型的函数和类就是函数模板和类模板。经过再次抽象后,程序的通用性。程序员能够通过模板快速建立具有类型安全的类库集合和函数集合,更加快捷、方便高效地进行大规模的软件开发。

        例如,编写三个函数分别求三个整形、三个字符型、三个浮点型数的最大值。 

int Max(int a,int b,int c)
{
	int max=a>b?(a>c?a:c):(b>c?b:c);
	return max;
} 
char Max(char a,char b,char c)
{
	char max=a>b?(a>c?a:c):(b>c?b:c);
	return max;
} 
float Max(float a,float b,float c)
{
	float max=a>b?(a>c?a:c):(b>c?b:c);
	return max;
} 

        利用重载,我们写出了三个同名且函数体类似的函数。这些函数执行的功能都是相同的,只是输入参数的类型和返回的类型不同。能否把这些函数统一成一种形式,即将很多类似函数抽象为统一的形式?解决方法就是运用模板。模板,相当于函数的模具,利用模板就可以套印出许多功能相同,而参数类型和返回值类型不同的函数,最终根据需要得到相应的数据。这样就实现了代码可重用性。
        C++的模板有两种不同的形:函数模板类模板

        以上就是我对C++模板——(1)模板的概念的理解,希望本篇文章对你有所帮助,也希望可以支持支持博主,后续博主也会定期更新学习记录,记录学习过程中的点点滴滴。如果有不懂和发现问题的小伙伴,请在评论区说出来哦,同时我还会继续更新对C++模板的理解,请持续关注我哦!!! 

相关推荐

  1. C++中模板方法模式

    2024-01-08 03:10:02       25 阅读
  2. c++】模板使用

    2024-01-08 03:10:02       47 阅读
  3. C++——模板奥秘

    2024-01-08 03:10:02       24 阅读
  4. C++模板(十二):forward模板

    2024-01-08 03:10:02       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-08 03:10:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-08 03:10:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-01-08 03:10:02       87 阅读
  4. Python语言-面向对象

    2024-01-08 03:10:02       96 阅读

热门阅读

  1. 何为算法之什么是算法

    2024-01-08 03:10:02       49 阅读
  2. 【Spring Boot 3】【Flyway】数据库版本管理

    2024-01-08 03:10:02       62 阅读
  3. 【Docker】desktop docker 打包镜像 docker如何打包镜像

    2024-01-08 03:10:02       57 阅读
  4. Cypress:一款强大的前端测试工具

    2024-01-08 03:10:02       51 阅读
  5. 支Vue3的WebSocket插件并支持断线重连

    2024-01-08 03:10:02       69 阅读
  6. 二叉树part02 算法

    2024-01-08 03:10:02       51 阅读
  7. 渗透第四天 (抽空再看一天 )

    2024-01-08 03:10:02       52 阅读
  8. 【Unity】云的渲染

    2024-01-08 03:10:02       67 阅读
  9. 一个奇怪的问题和奇怪的解决方案

    2024-01-08 03:10:02       73 阅读
  10. MySQL 8.0中新增的功能(四)

    2024-01-08 03:10:02       55 阅读