c 语言程序设计阚道宏,第10章 C 标准库C语言程序设计精髓.pdf

C++语言程序设计:MOOC版

第10章C++标准库

阚道宏

第10章C++标准库

• C++标准库

– 基于结构化程序设计方法所提供的系统函数

– 基于面向对象程序设计方法所提供的系统类库

• 使用系统类库

系统类库是一组预先定义好的类。程序员可以直接

使用这些类来定义对象,也可以通过组合或继承来

定义新的类。系统类库极大地扩展了C++语言的功

能,使得程序员可以在更高的起点上开发程序

• 模板技术:函数模板、类模板

阚道宏

第10章C++标准库

• 本章内容

– 10.1 函数模板

– 10.2 类模板

– 10.3 C++标准库

– 10.4 C++语言的异常处理机制

– 10.5 数据集合及其处理算法

– 10.6 结语

阚道宏

10.1 函数模板

• 函数模板的基本原理是通过数据类型的参数化,

将一组算法相同但所处理数据类型不同的重载函

数凝练成一个函数模板。编译时,再由编译器按

照函数模板自动生成针对不同数据类型的重载函

数定义代码

int max( int x, int y ) { return (x>y ? x:y); } // 求2个整数的最大值

double max( double x, double y ) { return (x>y ? x:y); } // 求2个实数的最大值

char max( char x, char y ) { return (x>y ? x:y); } // 求2个字符的最大值

template // 定义函数模板max

T max( T x, T y )

{ return ( x>y ? x : y ); }

阚道宏

10.1 函数模板

C++语法:定义函数模板

template

函数类型 函数名(形式参数列表)

{

函数体

}

语法说明:

 定义函数模板以关键字“template ”开头;

 类型参数是一种表示数据类型的参数。类型参数列表可定义一个或多个类型参数,每个类型参

数以“typename 类型参数名”或“class 类型参数名”的形式定义,类型参数之间用“, ”隔开。

类型参数名需符合标识符的命名规则;

 函数模板定义的其余部分,包括函数类型、函数名、形式参数列表以及函数体,它们和普通函

数的定义形式没有什么区别。唯一不同的是,类型参数将会作为一种新的数据类型出现函数模

板定义中;

 使用typename或class所声明的类型参数就像是一种新的数据类型,可以用它来定义函数类型

(即返回值的类型),也可以用来定义形参或在函数体中定义局部变量。类型参数是表示数据

类型的参数,调用时可被替换成任意一种实际数据类型,例如某种基本数据类型、自定义数据

类型或类类型等。类型参数也可理解成是一种通用数据类型;

 函数模板定义中的前2行被称为是函数模板头。

阚道宏

10.1 函数模板

例10-1 一个完整的求最大值函数模板max的C++演示程序

1 #include

2 using namespace std;

3

4 template // 定义函数模板max

5 T max( T x, T y ) //

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值