- 1、本文档共278页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C面向对象程序设计课件-软件
实验一 实验一 类与结构 时间:本周六(10月16日)4班1、2节;5班7、8节;6班9、10节 地点:D304 实验内容:应用VC++6.0的编辑环境构造一个类Date,该类主要实现日期的基本操作,例如初始化(非构造函数)、求当前日期为星期几、当前年份是否为闰年、该日为该年第几天、输出等,具体说明如下: 该类拥有三个私有(或保护)成员变量year、month、day,分别代表日期中的年、月、日,成员函数有初始化函数、判断该年份是否为闰年函数、求当前日期为星期几函数、该日为该年第几天,结果输出函数等。 南昌航空大学计算机学院 templateclass obj obj max(obj o1,obj o2) { if (o1o2) return o1; return o2; } void main() { int i1=5,i2=55; cout较大的数:max(i1,i2)endl; number c1(5,11); number c2(6,23); number c3=max(c1,c2); cout较大的和:c3.getx()+c3.gety()endl; } 南昌航空大学计算机学院 类模板和模板类 类模板与函数模板类似,它可以为各种不同的数据类型定义一种模板,在引用时使用不同的数据类型实例化该类模板,从而形成一个类的集合。 类模板实际上是函数模板的推广。可以用相同的类模板来组建任何类型的对象集合。在传统C++中,可能有一个浮点数类或者一个整数类,如果使用类模板,可以定义一个对两者都适用的类number。 南昌航空大学计算机学院 类模板说明 template 类型形参表 class 类名 { //类说明体 }; template 类型形参表 返回类型 类名 类型名表::成员函数1(形参表) { //成员函数定义体 } template 类型形参表 返回类型 类名 类型名表::成员函数2(形参表) { //成员函数定义体 } … template 类型形参表 返回类型 类名 类型名表::成员函数n(形参表) { //成员函数定义体 } 南昌航空大学计算机学院 其中的类型形参表与函数模板中的意义一样。后面的成员函数定义中,类型名表是类型形参的使用。 这样的一个说明(包括成员函数定义)不是一个实实在在的类,只是对类的描述,称为类模板(class template)。类模板必须用类型参数将其实例化为模板类后,才能用来生成对象。一般地,其表示形式为: 类模板名 类型实参 对象名(值实参表) 其中类型实参表表示将类模板实例化为模板类时所用到的类型(包括系统固有的类型和用户已定义类型),值实参表表示将该模板类实例化为对象时其构造函数所用到的变量。一个类模板可以用来实例化多个模板类。 南昌航空大学计算机学院 类型形参表中的形参要加上class关键词,类型形参可以是C++中的任何基本的或用户定义的类型。对在形参表中定义的每个类型,必须要使用关键词class。如果类型形参多于一个,则每个形参都要使用关键词class。 类型形参表也可以包含表达式参数,表达式参数经常是数值。对模板类进行实例化时给这些参数所提供的变量必须是常量表达式。类模板参数列表决不能是空的,如果其中有一个以上的参数,则这些参数必须要用逗号分开。 南昌航空大学计算机学院 如: template class T1,int exp1,class T2 class someclass { // }; 类模板someclass的第二个参数是表达式,而第一和第三个参数是占位符。 类模板的成员函数的体外,每个前面都必须用与声明该类模板一样的表示形式加以声明,其他部分同一般的成员函数定义。 南昌航空大学计算机学院 使用类模板 与函数模板一样,类模板不能直接使用,必须先实例化为相应的模板类,定义该模板类的对象后才能使用。 建立类模板后,可用下列方式创建类模板的实例: 类名 类型实参表 对象表; 其中,类型实参表应与该类模板中的类型形参表匹配。类型实参表是模板类(template class),对象是定义该模板类的一个对象。 使用类模板可以说明和定义任何类型的类。这种类被称为参数化的类。如果说类是对象的推广,那么类模板可以说是类的推广。 注意:类模板与模板类的区别 。 南昌航空大学计算机学院 template class T,i
文档评论(0)