第7章 重载与模板.ppt

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章重载与模板要点

第7章 重载与模板 问题的提出 1、基本数据类型系统提供了大量运算符。 如:int x,y; x=x+y; 表达简洁,使用方便。 2、问题的提出: 对于串类的对象合并: string x, y; strcat(x,y);不如上述运算那样简单,希望能改造为:x=x+y;更加简单和直观! 因此,需要对“+”进行不同的解释,即:重载 一、C++中的运算符 1、大多数系统预定义运算符都能重载,除开以下: . :: ?: # *(当乘法运算符时可重载) “.” “::” “*”在C++中有特定定义 “?:”不值得重载 “#”不能被重载 2、重载时的注意事项: (1)不能改变优先级; (2)不能改变结合性; (3)不能改变运算符所需操作数的个数; (4)重载后,可按这些运算符的表达方式使用。 运算符重载的语法形式 一、通过运算符重载函数进行重载 1、运算符重载函数是成员函数 语法形式: Type X::operator@(参数表) { //相对于该类而定义的操作 } 2、运算符重载函数是友元函数 语法形式: Type operator@(参数表) { //相对于该类而定义的操作 } 一元和二元运算符 一、运算符重载函数定义的两种方式 1、成员函数和友元函数 2、差别的关键原因:this指针 二、一元运算符 1、不论前缀还是后缀,需要一个操作数 2、对于任意一元运算符α: (1)成员函数重载运算符 定义 type x::operator α( ) {…} 显式调用 objX.operator α( ) 隐式调用 αobjX 或:ojbXα (2)友元函数重载运算符 定义 type operator α(Xobj) {…} 显式调用 operatorα(obj X) 隐式调用 αojbX 或:objX α 三、二元运算符 1、需要两个操作数; 2、对于任意二元运算符β: 7.2 模板 模板包含函数模板与类模板 7.2.1 函数模板 1.函数模板的定义 函数模板的定义为: template 类型参数表 返回类型函数名(形参表) { 函数体 } 【例】函数模板的说明 template class Glorp Glorp min( Glorp a, Glorp b ) { return a b ? a : b; } 注意:对函数模板的说明和定义必须是全局作用域,函数模板不能说明为类的成员函数 2.函数模板的实例化 在函数模板中,函数模板只是说明,不能直接执行,需要实例化为模板函数后才能执行。当编译系统发现一个函数调用时,将根据实参表中的类型生成一个重载函数即模板函数。 【例7.14】函数模板的实例化 #include iostream template class A A fab(A x) { return x=0?x,-x; } void main() { int i=5; double y=-5.4; cout”整数的绝对值”fab(i)endl; //A实例化为int cout”实数的绝对值”fab(y)endl; // A实例化为double } 7.2.2 类模板 1.类模板的定义 template 类型形参表 class 类名 { //类说明体 } template 类型形参表 返回类型类名 类型名表::成员函数1(形参表) { //成员函数定义体 } template 类型形参表 返回类型类名 类型名表::成员函数2(形参表) { //成员函数定义体 } 。。。 template 类型形参表 返回类型类名 类型名表::成员函数n(形参表) { //成员函数定义体 } 【例】设计一套完整的算术运算来补充add函数。 2.类模板的实例化 类模板不能直接使用,必须实例化为相应的模板类 创建类模板的实例的一般格式为: 类名类型实参表

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档