网站大量收购独家精品文档,联系QQ:2885784924

C++高级语言程序设计第9节.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京邮电大学信息与通信工程学院 * -*- template class T1, class T2 void MyClass T1, T2 ::display( ) { coutxendl; coutyendl; } void main() { MyClassint,float Obj1 (6,6.6); Obj1.display(); MyClasschar,char * Obj2(x,A string); Obj2.display(); } 北京邮电大学信息与通信工程学院 9.5.4 类模板 示例是带有两个参数化类型的类模板。在类外部定义成员函数时,先要声明使用了两个参数化类型的名字,然后,在类模板名后面注明这个模板要使用这些名字。再具体的定义成员函数。 类模板进行两次实例化,分别输出不同类型的数据:第一次输出整型和实型,第二次输出字符和字符串。 北京邮电大学信息与通信工程学院 * -*- 例 9-14 类模板的定义和实例化的示例//例11.14:11_14.cpp #include iostream using namespace std; template class T1, class T2 class MyClass { private: T1 x; T2 y; public: MyClass( T1 a, T2 b ); void display( ); }; template class T1, class T2 MyClass T1,T2 ::MyClass( T1 a, T2 b ) { x = a; y = b; } 北京邮电大学信息与通信工程学院 * -*- template class T1, class T2 void MyClass T1, T2 ::display( ) { coutxendl; coutyendl; } int main() { MyClassint,float Obj1(6,6.6); Obj1.display(); MyClasschar,char * Obj2(x,A string); Obj2.display(); } 北京邮电大学信息与通信工程学院 * -*- 9.5.4类模板 带有确定类型参数的类模板 类模板声明时在尖括号内除了声明要使用的参数化类型名外,还可以包括确定类型的类型名。如: template class T, int i class MyStack 在类模板实例化和声明对象时,这个参数i要用具体的整型值来代替,如: MyStackint,5 ss; 北京邮电大学信息与通信工程学院 * -*- 9.5.4类模板 例9.13 用类模板来定义栈类。栈是一种先进后出的数据区。各种数据都可以定义相应的栈类。使用类模板后,就不需要定义各种不同的栈类了。 用数组作为栈的存储体。在创建栈对象时,可以指定栈的大小。安排一个栈指针top指向栈顶。定义两个栈的基本操作:进栈(push)和出栈(pop)。定义相应的类模板,并测试其功能。 北京邮电大学信息与通信工程学院 * -*- //例9.15栈类模板 //Main15.cpp #include iostream using namespace std; template class T, int i //类模板定义 class MyStack { T StackBuffer[i]; int size; int top; public: MyStack( void ) : size( i ) {top = i;}; void push( const T item ); T pop( void ); }; 北京邮电大学信息与通信工程学院 * -*- template class T, int i //push成员函数定义 void MyStack T, i ::push( const T item ) { if( top 0 ) StackBuffer[--top] = item; else cout堆栈溢出错误.endl; return; } 北京邮电大学信息与通信工程学院 * -*- template class T, int i //pop成员函数定义 T MyStack T, i ::pop( void ) { if( top i ) return StackBuffer[top++]; else cout 堆栈无数据可以

文档评论(0)

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

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

1亿VIP精品文档

相关文档