1 / 37
文档名称:

C 基础知识.ppt

格式:ppt   大小:256KB   页数:37
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C 基础知识.ppt

上传人:luyinyzha 2018/2/27 文件大小:256 KB

下载得到文件列表

C 基础知识.ppt

相关文档

文档介绍

文档介绍:C++基础知识3
信息学院
李崇威
ise_******@ujn.
QQ: 58296786
C++基础知识3
函数重载
模版
继承与派生
多态
函数重载
函数的重载也称多态函数。C++允许功能相近的函数在相同的作用域内以相同函数名声明,但是形参的个数或者形参的类型不应相同,编译系统会根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是所谓的函数重载。
对于没有重载机制的C语言,每个函数必须有其不同于其它函数的名称,即使操作是相同的,仅仅数据的类型不相同,也需要定义名称完全不同的函数,这样就显得重复且效率低下。
例如,定义求两个数中较大值的函数,就必须对整数、浮点数以及双精度数分别用不同的函数名实现:
int imax (int x, int y)
{ return (x>y) ? x : y; }
float fmax (char x, char y);
{ return (x>y) ? x : y; }
double dmax (double x, double y);
{ return (x>y) ? x : y; }
程序在调用上述三个不同类型的函数时,是以名字加以区别的,需要记住并区别它们的名称。显然,这样就造成了代码的重复,使用起来也不方便,更不利于代码的维护。
对于具有重载机制的C++语言,允许功能相近的函数在相同的作用域内以相同函数名定义,因而使函数方便使用,便于记忆,也使程序设计更加灵活。
仍以上例而言,在C++中只要用一个函数名即可,如max( ),然后以调用此函数的参数类型来决定是要比较int型、float型,还是double型的数的大小。
例:实现上例
#include <iostream>
using namespace std;
int max(int x, int y)
{ return (x>y) ? x : y; }
float max(float x, float y)
{ return (x>y) ? x : y; }
double max(double x, double y)
{ return (x>y) ? x : y; }
void main( )
{
cout<<max(3, 5)<<endl;
cout<<max(, )<<endl;
cout<<max(, )<<endl;
}
使用说明
重载函数的形参必须不同:个数不同或类型不同。
编译程序将根据实参和形参的类型及个数的最佳匹配来选择调用哪一个函数。
编译器不以返回值来区分重载函数。
编译器不以形参名来区分重载函数。
不能用typedef定义的类型名来区分重载函数声明中的参数。
不要将不同功能的函数声明为重载函数。让重载执行不同的功能,是不好的编程风格。同名函数应该具有相同的功能。
模版的引入
看下面三个求两个数中最大值的函数。
int max (int x, int y)
{ return (x>y) ? x : y; }
float max (float x, float y)
{ return (x>y) ? x : y; }
double max (double x, double y)
{ return (x>y) ? x : y; }
这三个函数只有参数类型不同,功能完全一样。即使设计为重载函数,也只是使用相同的函数名,而函数体仍然要分别定义。
类似这样情况,如果能写一段通用代码适用于多种不同数据类型,便会使代码的可重用性大大提高,从而提高软件开发效率。使用模版就是为了这一目的。
模版
C++的最重要特性之一就是代码重用。为了代码重用,代码必须是通用的。而通用代码必须不受使用数据类型的影响。
模板就是实现代码重用机制的一种工具,它是由可以使用和操作任何数据类型的通用代码构成,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码重用。
模板分为函数模板和类模板,它们分别允许用户构造模板函数和模板类。
函数模版
函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,进一步简化重载函数的函数体设计。
函数模版的定义形式:
template <typename 标识符>
返回类型函数名(模板形参表)
{
函数体
}
其中,template是一个声明模板的关键字,它表示声明一个模板。 typename也可以写成class。

最近更新

高中一年级历史学习建议书 5页

高一新生历史学习建议书 5页

饲料生产效率提升建议书 5页

餐饮创业新手必读建议书 5页

食堂膳食服务优化建议书 5页

食品安全监督加强建议书 6页

领导采纳的建议书 5页

领导土地流转建议书 5页

预先研究装备提案优化建议书 5页

居家护理员基本技能培训 44页

心理疾病护理团队协作模式 37页

急性呼吸窘迫综合征抢救护理 33页

2024年海南经贸职业技术学院马克思主义基本原.. 12页

急诊护理中的工作压力管理 41页

恐动症患者的饮食与运动护理 43页

2024年渑池县招教考试备考题库带答案解析(夺.. 30页

2024年湄潭县招教考试备考题库带答案解析(必.. 31页

2024年湖北恩施学院马克思主义基本原理概论期.. 12页

2024年湖北黄冈应急管理职业技术学院马克思主.. 13页

慢性胃炎的护理效果评价 69页

2024年滇西科技师范学院马克思主义基本原理概.. 13页

2024年潇湘职业学院马克思主义基本原理概论期.. 13页

2024年烟台大学马克思主义基本原理概论期末考.. 12页

2024年班玛县幼儿园教师招教考试备考题库及答.. 30页

2024年甘肃工业职业技术大学马克思主义基本原.. 13页

2024年疏勒县招教考试备考题库附答案解析(夺.. 31页

2024年益阳教育学院马克思主义基本原理概论期.. 12页

2024年石棉县招教考试备考题库及答案解析(必.. 31页

2024年福建体育职业技术学院马克思主义基本原.. 12页

2024年秦安县幼儿园教师招教考试备考题库附答.. 31页