- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
09第九章 类属机制课件
第九章 类属机制 ;§9.1 类属的基本概念 ;§9.1 类属的基本概念 ;§9.1 类属的基本概念 ;§9.1 类属的基本概念 ;§9.1 类属的基本概念 ;9.1.3 类属机制
C++语言的模板
函数模板(类属函数)
函数的形式参数表中某些形式参数的数据类型被参数化
函数模板本身不是函数,经实例化后才得到函数
类模板(类属类)
类的数据成员的类型或成员函数的形参类型被参数化
类属类也不是类,经实例化后才得到具体的类;§9.2 类模板 ;9.2.1 类属类的定义
例1. 用类模板对数组进行排序、检索和求和
#include iostream.h
template class T //声明一个形式类属参数T
class ARRAY {
T *set; // 定义数组元素集合
int n; // 定义数组元素个数
public: ARRAY( T *data, int i)
{ set= data ;
n= i;
}
~ARRAY() { }
void sort(); // 排序
int seek(T key); // 检索
T sum(); // 求和
};;9.2.1 类属类的定义
template class T // 注意在类外声明类模板的
void ARRAYT::sort() // 成员函数的形式
{ int i, j; T d;
for (i=1; in; i++)// 冒泡排序
for (j=n-1; j=i; j--) {
if (set[j-1] set[j]) {//交换set[j-1]和set[j]的值
d = set[j-1];
set[j-1] = set[j];
set[j] = d ;
}
}
};9.2.1 类属类的定义
template class T
int ARRAYT::seek(T key)
{ for (int i=0; in; i++)
if (set[i]==key) return i; // 找到,则返回key在数组中的位置
return -1; // 找不到,返回-1
}
template class T
T ARRAYT::sum()
{ T s=0;
for (int i=0; in; i++)
s+= set[i];
return s;
};9.2.1 类属类的定义
例2. 类属链表类
//程序:GLIST.HPP
//功能:定义链表类属类LIST的界面
template class ELEMENT_TYPE
class LIST {
public:
LIST(int length)
{
vector=new ELEMENT_TYPE[length];
size=length;
return;
}
~LIST()
{
delete [] vector;
return;
};9.2.1 类属类的定义
//检索链表中的元素,利用重载运算符[]实现,函数返回值可作为左值
ELEMENT_TYPE operator[](int index)
{
return vector[index];
}
private:
ELEMENT_TYPE *vector;
int size;
};;9.2.1 类属类的定义
例3. 类属堆栈类
//程序:GSTACK.HPP
//功能:定义堆栈类属类STACK的类界面和类的实现
#include iostream.h
#include process.h
#ifndef __GSTACK_HPP
#define __GSTACK_HPP
template class ELEMENT_TYPE
class STACK {
public:
STACK();
void push(ELEMENT_TYPE obj);
void pop();
ELEMENT_TYPE get_top();
int is_empty();;9.2.1 类属类的定义
private:
struct NODE {
ELEMENT_TYPE element;
NODE *link;
};
NODE *top;
};
template class ELEMENT_TYPE
STACKELEMENT_TYPE::STACK() // 构造函数
{
top=NULL; // 将栈顶置为空
return;
}
您可能关注的文档
- 0513下午(商仲)天津实习律师培训课件.ppt
- 052.IP访问列表课件.ppt
- 05Windows2000Server技术基础课件.ppt
- 05_STEP 7数据类型和变量课件.ppt
- 05elasticity课件.ppt
- 05建设工程计价办法课件.ppt
- 05层叠样式、模板与库课件.ppt
- 05债务重组课件.ppt
- 05第五章 企业偿债能力分析——051108课件.ppt
- 05_CC++漏洞_Shellcode课件.ppt
- 2024年学校党总支巡察整改专题民主生活会个人对照检查材料3.docx
- 2025年民主生活会个人对照检查发言材料(四个带头).docx
- 县委常委班子2025年专题生活会带头严守政治纪律和政治规矩,维护党的团结统一等“四个带头方面”对照检查材料四个带头:.docx
- 巡察整改专题民主生活会个人对照检查材料5.docx
- 2024年度围绕带头增强党性、严守纪律、砥砺作风方面等“四个方面”自我对照(问题、措施)7.docx
- 2025年度民主生活会领导班子对照检查材料(“四个带头”).docx
- 国企党委书记2025年度民主生活会个人对照检查材料(五个带头).docx
- 带头严守政治纪律和政治规矩,维护党的团结统一等(四个方面)存在的问题整改发言提纲.docx
- 党委书记党组书记2025年带头增强党性、严守纪律、砥砺作风方面等“四个带头”个人对照检查发言材料.docx
- 2025年巡视巡察专题民主生活会对照检查材料.docx
最近下载
- 创意唯美厦门大学介绍PPT模板.pptx
- 湖南省常德市2023-2024学年高三上学期期末检测生物试题(含答案解析).docx VIP
- 人教版2023--2024学年度第一学期七年级地理上册期末测试卷及答案.doc VIP
- 2010年天津外国语大学英语专业(语言学)真题试卷.doc VIP
- 湘教版美术七上第三课《向日葵》课件ppt.ppt
- 人教版(2024)地理七年级上册第一学期期末测试卷(含答案).doc VIP
- 大学体育与健康 教案全套 体适能 第1--16周.docx
- 广东省广州市增城区2021-2022学年九年级上学期期末质量检测英语试题.pdf VIP
- Redis操作基础文档 .pdf VIP
- 传热学第5版课件完整版.ppt
文档评论(0)