C++ 函数重载(多态)、函数模板

本文介绍了C++中的函数重载(多态)和函数模板。函数重载允许存在同名函数,通过参数列表(特征标)进行区分。函数模板是一种通用函数描述,使用泛型定义,编译器根据实际类型生成函数。模板并不创建函数,而是提供函数定义。还讨论了模板的实例化(隐式和显示)以及模板具体化,详细解析了各种概念和使用场景。
摘要由CSDN通过智能技术生成

内容均出自《C++ primer plus》,本文仅为个人理解总结所用。
若有不明欢迎站内私信交流。
若发现文中错漏之处,期待不吝赐教站内私信。

(一)函数重载(多态)

先上定义:

C++ Premer Plus (page276)

  • 函数多态是C++在C语言的基础上新增的功能。
  • 术语"多态":指的是有多种形式。
  • 术语"函数重载":指的是可以有多个同名函数,因此对名称进行了重载。
  • 两个术语是同一回事,但通常使用函数重载。
  • 函数多态(函数重载)让程序能够使用多个同名的函数。

实例理解:

同名函数,程序如何区分需要使用哪个?
——根据特征标

  • 函数重载的关键是函数的参数列表——也称为特征标
  • 若参数数目/参数类型不同,则特征标也不同。
  • tips: const限定符、 &引用符不为特征标
//比如本组函数
void print(const char* str, int width);		//#1
void print(double d, int width);			//#2
void print(long l, int width);				//#3
void print(int i, int width);				//#4
void print(const char *str);				//#5

使用print( )函数时,编译器将根据所采用的的用法使用有相应特征标的原型:

printf("Pancakes", 15);						//自动匹配#1
printf("Syrup");							//自动匹配#5
printf(1999.0, 10);							//自动匹配#2
printf(1999, 12);							//自动匹配#4
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值