第13章模板与异常处理·13.1模板13.2异常处理机制13.3友元程序设计举例
第13章 模板与异常处理 0 13.1 模板 13.2 异常处理机制 13.3 友元 程序设计举例
模板13.1 7应用背景1、两个或多人函数的程序结构相同;2、P两个或多个类的结构相同;差别:参数/数据成员类型不同,3、天函数/成员函数返回类型不同解决方法:C++提供了模板机制作用:简化程序代码,实现软件复用
13.1 模板 1 应用背景: 1、两个或多个函数的程序结构相同; 2、两个或多个类的结构相同; 3、差别:参数/数据成员类型不同, 函数/成员函数返回类型不同。 解决方法:C++提供了模板机制 作用:简化程序代码,实现软件复用
模板13.1 7C++模板类型1、函数模板抽象通用的函数,可生成一批具体的函数由函数模板经实例化生成的具体函数称为模板函数。2、类模板抽象通用的类,可生成一批具体的类由类模板经实例化生成的具体类称为模板类
13.1 模板 2 C++模板类型: 1、函数模板 抽象通用的函数,可生成一批具体的函数。 由函数模板经实例化生成的具体函数称为模板函数。 2、类模板 抽象通用的类,可生成一批具体的类。 由类模板经实例化生成的具体类称为模板类
模板13.1函数模板:一,用来定义通用的函数,其作用类似函数重载优点:编码比函数重载简单1、定义格式:template <<模板参数表><类型><函数名>(<参数表>)..注:函数模板为通用函数,其函数类型和形参类型不具体指定,用虚拟的类型来代表
13.1 模板 3 一、函数模板: 用来定义通用的函数,其作用类似函数重载 优点:编码比函数重载简单 1、定义格式: template < <模板参数表> > <类型> <函数名>(<参数表>) { . } 注:函数模板为通用函数,其函数类型和形参类型 不具体指定,用虚拟的类型来代表
2、说明(1)“模板参数表"中的模板参数的形式为class<类型参数>或typename<类型参数>注:此处关键字class与一般所讲的类无关,而是与“类型参数一起说明这是一个内部类型或用户自己已定义的数据类型(2)在使用模板函数时,模板中的类型参数可用一个实际类型替换,从而达到了类型通用的自的,(3)当类型参数的含义确定后,编译器将以函数模板为样板,生成一个具体的函数
4 2、说明 (1) “模板参数表”中的模板参数的形式为: class <类型参数> 或 typename <类型参数> 注:此处关键字class与一般所讲的类无关,而是与“类型参 数”一起说明这是一个内部类型或用户自己定义的数据类型。 (2)在使用模板函数时,模板中的类型参数可用一 个实际类型替换,从而达到了类型通用的目的。 (3)当类型参数的含义确定后,编译器将以函数 模板为样板,生成一个具体的函数