- 浏览: 45975 次
- 性别:
- 来自: 河北
最新评论
模板
模板(template)是一个将数据类型参化的工具,它提供了一种将代码与数据类相脱离的机制,即代码不受具体的数据类型的影响。模板分为函数模板和类模板两种。
(1)函数模板
函数模板是一种不说明某些参数的数据类型的函数。例如,下面定义了一个可对任何类型变量进行操作(求绝对值)的函数模板。
template <class T> //或写成:template <typename T> T abs(T val) { return val<0 ? -val : val; }
在函数模板被调用时,编译器根据实际参数的类型确定模板参数T的类型,并自动生成一个对应的函数,即模板函数。模板参数的类型不同,生成的模板函数也不同。
例 1 函数模板的定义和使用
#include <iostream.h> template <class T> //定义模板 T abs(T val) //定义函数模板 { return val<0 ? -val : val; } void main() { int i=100; cout <<abs(i)<<endl; //类型参数T替换为int long l=-12345L; cout <<abs(l)<<endl; //类型参数T替换为long float f=-125.78F; cout <<abs(f)<<endl; //类型参数T替换为float }
定义函数模板时也可以使用多个类型参数,这时每个类型参数前面都要加上关键字class或typename,其间用逗分隔,其形式如下所示。
template <class T1,class T2,class T3>
例 2 使用多个类型参数的函数模板
#include <iostream.h> template <class T1,class T2> T1 Max(T1 x,T2 y) { return x>y ? x: (T1)y; } void main() { int i=100; float f=-125.78F; cout <<Max(i,f)<<endl; //类型参数T1替换为int,T2替换为float }
(2)类模板
使用多个类型参数的类模板
#include <iostream.h> template <class T1,class T2> //使用2个类型参数 class MyTemClass //定义类模板 { private: T1 x; T2 y; public: MyTemClass(T1 a,T2 b) { x=a;y=b; } //构造函数 void ShowMax() //输出最大的数据成员 { cout <<"MaxMember="<<(x>y?x:y)<<endl; } }; void main() { int a=100; float b=123.45F; MyTemClass<int,float> mt(a,b); //声明类模板的对象 mt.ShowMax(); }
发表评论
-
MFC的打印
2009-05-24 17:05 0虽然Windows通过 ... -
ActiveX控件
2009-05-23 15:49 6715ActiveX是Microsoft提出的使用组件对 ... -
多线程
2009-05-22 18:57 0Windows对CPU的管理的采取时间片分配的方式 ... -
动态链接库DLL
2009-05-22 14:38 0为了提高系统 ... -
异常处理
2009-05-21 19:06 2123异常(exception)是指在程序运行过程中发生 ... -
MFC ODBC数据库类
2009-05-20 19:44 74941.ODBC概述 ... -
对话框高级编程---公共控件之四(树视控件)
2009-05-19 21:45 2376树视(tree view)控 ... -
对话框高级编程---公共控件之四(列表视控件)
2009-05-19 14:01 0列表视(list view)控件也称列表控件,属 ... -
对话框高级编程---公共控件之三(图像列表)
2009-05-18 21:22 0图像列表(image list)是一个由一些大小相同 ... -
对话框高级编程---公共控件之二(标签控件和属性表)
2009-05-18 20:33 35571.标签控件 标签(tab)控件也 ... -
对话框高级编程---公共控件之一(旋转按钮、滑块和进度条)
2009-05-18 11:09 01.旋转按钮 ... -
对话框高级编程---通用对话框
2009-05-17 21:17 18221.通用对话框概 ... -
对话框高级编程---非模态对话框
2009-05-16 21:39 0尽管不同对话 ... -
图形处理---位图、图标和光标
2009-05-16 20:33 22121.位图 例1 编写一个应用程序MyB ... -
图形处理---位图,图标和光标
2009-05-16 20:16 01.位图 例1 编写一个应用程序MyBMP ... -
图形处理---位图、图标和光标
2009-05-16 19:58 01.位图 例1 编写一个应用程序MyBMP ... -
文本与字体
2009-05-16 16:23 01.绘制文本 以图形方式进行文本的输 ... -
图形处理---基本几何图形的绘制
2009-05-15 21:27 0获取设备环境、设置绘图属性和选择GDI绘图对象后,就 ... -
图形处理---画笔和画刷
2009-05-15 17:30 0进行绘图除了需 ... -
图形处理---颜色的设置
2009-05-15 16:08 0在绘制图形时,颜色是一个需要考虑的因素。Window ...
相关推荐
C++中的函数模板和类模板是泛型编程的重要组成部分,它们允许我们编写更为通用的代码,从而能够处理不同数据类型的对象。在这个实验报告中,我们将深入理解这些概念,并通过具体的编程实践来掌握它们。 首先,我们...
### C++模板(包括函数模板和类模板) #### 模板概述 模板是C++语言的一个强大特性,它允许开发者编写能处理不同数据类型的通用代码。通过使用模板,程序员能够编写出灵活且可复用的代码,从而显著提高开发效率并...
C++提供了两种模板机制:函数模板和类模板。 一、函数模板 函数模板是C++中一种常用的模板机制,它可以建立一个通用的函数,其函数返回值类型和形参类型可以不具体指定,用一个虚拟的类型来代表。函数模板的声明和...
学习 C++ 的函数模板和类模板 在 C++ 编程语言中,模板(Template)是一种非常重要的概念。它可以帮助我们编写更加灵活和可重用的代码。今天,我们将学习 C++ 的函数模板和类模板。 一、为什么使用模板? 在算法...
实验12的主题聚焦在函数模板和类模板的使用上,这是C++编程中非常重要的概念。函数模板允许我们创建能够处理不同类型数据的通用函数,而类模板则让我们能定义可以适用于多种数据类型的类。 首先,函数模板是C++中一...
C++中的模板是其强大的特性和核心部分,主要分为函数模板和类模板,它们都是实现参数化多态的重要手段。参数化多态允许程序员创建通用的代码,这些代码可以应用于多种数据类型,从而提高代码的复用性和灵活性。 **...
模板分为两种主要类型:函数模板和类模板。 1. **函数模板**: - 函数模板是C++中提供的一种方式,通过它可以用一种通用的方式编写函数,以支持多种数据类型。例如,`abs` 函数用于计算数值的绝对值,通常需要为...
C++函数重载、函数模板、类模板 C++函数重载是指在同一个作用域内,允许多个函数具有相同...函数重载、函数模板和类模板是C++中的三个强大的特性,它们可以帮助我们编写更加灵活和通用的代码,以适应不同的应用场景。
函数模板和普通函数区别结论: 函数模板不允许自动类型转化 普通函数能够进行自动类型转换 函数模板和普通函数在一起,调用规则: 1 函数模板可以像普通函数一样被重载 2 C++编译器优先考虑普通函数 ...
实验报告的主题是“简单类与函数模板”,涵盖了C++中的面向对象编程和泛型编程的基础概念。以下是关于这些知识点的详细说明: 1. **简单类(Simple Class)**: - 在C++中,类是一种用户自定义的数据类型,它封装...
模板分为两种主要类型:函数模板和类模板。本文将深入探讨这两种模板的概念、工作原理以及如何通过实例来理解和应用它们。 首先,我们来看函数模板。函数模板是一种通用的函数定义,它不绑定到特定的数据类型。当...
通过本文档,读者可以了解C++泛型编程的思想,掌握函数模板和类模板的使用方法,并且了解两者的区别。 一、函数模板 函数模板是C++语言中的一种泛型编程技术,允许开发者定义一个通用的函数,可以处理不同的数据...
模板知识体系大纲与细节知识点(使用Mindjet MindManager打开)
【函数模板】 函数模板是C++中一种强大的...总结来说,函数模板和类模板是C++中泛型编程的基础,它们提高了代码的复用性和灵活性,允许我们在不指定具体数据类型的情况下编写通用的代码,从而适应多种数据类型的需求。
模板函数可以分为两种类:函数模板和类模板。 函数模板是指使用模板参数来定义函数的返回类型和参数类型的函数。函数模板的定义一般形式是:template <class T> T 函数名(T a, T b){...}。其中,T 是模板参数,...
可定义函数模板和类模板,使代码生成更加通用化。 说明:这需要事先安装.net framework 3.5 。这个完全出自本人之手。有什么建议望指正。 邮箱:hp_co@qq.com 。 类似于李天平的,但那个太死了,这个可以...
模板可以分为两类:函数模板和类模板。 ##### 函数模板的一般形式 函数模板的基本结构如下: ```cpp template 返回类型 函数名(形参表) { // 函数定义体 } ``` 这里的关键字`template`用于声明一个模板,`...
本文针对C++函数模板与类模板进行了较为详尽的实例解析,有助于帮助读者加深对C++函数模板与类模板的理解。具体内容如下: 泛型编程(Generic Programming)是一种编程范式,通过将类型参数化来实现在同一份代码上...
总的来说,C++的模板机制,特别是函数模板和类模板,极大地提高了代码的重用性和灵活性。通过模板,我们可以编写出高度抽象和泛化的代码,这不仅减少了重复工作,还使得程序设计更加模块化和易于维护。同时,STL的...
8. **模板(Templates)**:C++模板提供了泛型编程的能力,可以创建函数模板和类模板,用于编写不依赖特定类型的操作。这使得代码更具通用性,减少了重复编写类似功能的代码。 9. **STL容器(Standard Template ...