一、重载函数(1)函数的重载(fuction overloading):一名多用
重载函数情况1:同名同体,但接口不同
接口就是函数中定义的参数
重载函数情况2:同名不同体,参数个数有区别
函数的重载:用同一函数名定义多个函数,这些函数的参数个数或参数类型不同。
函数的重载使一个函数名重新赋予新的含义,使一个函数名可以多用。
在编程时,要实现细节不同的同一类的功能时,用函数的重载。例如
不能算作重载的情况
如果函数的返回值类型不同,但参数个数和类型相同,不算重载
重载函数的参数个数、参数类型或参数顺序三者中必须至少有一种不同,函数返回值类型可以相同也可以不同。
在使用重载函数时,同名函数的功能应当相同或相近,不要用同一函数名去实现完全不相干的功能,虽然程序也能运行,但可读性不好,使人莫名其妙
函数重载与参数的默认值不要冲突
如果发生冲突,编译器会报错:调用重载函数引发歧义
二、函数模板
需求:
用重载函数,一个函数名,实现多种功能——清楚简单。
分别定义每个函数——繁琐。
(1)函数模板(function template):替代同体重载函数的多次定义
所谓函数模板,实际上就是建立一个通用函数,其函数类型和形参类型可以不具体制定,而是用一个虚拟的类型来代表。
凡是函数体相同的函数都可以用这个模板来代替,不必定义多个函数,只需在模板中定义一次即可。
在调用函数时,系统会根据实参的类型来取代模板中的虚拟类型,从而实现了不同函数的功能。
(2)使用函数模板
调用时,分别用相应的数据类型代替模板函数的T
(3)定义函数模板
先进行模板声明,再定义函数
虚拟类型名即可以被用于函数定义
在对程序进行编译时,编译系统会将函数名与模板相匹配,将实参的类型取代了函数模板中的虚拟类型T。
类型参数可以不止一个,可以根据需要确定个数。如
template
函数模板是将数据类型也参数化了。
三、字符串类(1)C语言中的字符串函数 string.h
(2)C++中的新成份——string类型
(3)string类型使用
为字符串直接赋值
对字符串变量中某一字符操作
用加号连接字符串
用关系运算符比较字符串
==、>、=、
字符串输入输出
string并不是C++语言本身具有的基本类型,它是在C++标准库声明的一个字符串类
文件包含#include
或#include
string的功能(一小部分)
(4)字符串数组
定义一个字符串数组并初始化
领取专属 10元无门槛券
私享最新 技术干货