C+语言学习笔记3

一、重载函数(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)字符串数组

定义一个字符串数组并初始化

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180624G0TTV600?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励