运算符重载、继承、派生程序题及答案.doc

运算符重载、继承、派生程序题及答案.doc

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

1. ? (10分) 栈类——类模板 题目描述 用类模板方式设计一个链栈类stackT,其中有两个私有数据成员:NodeT *head(链首指针,即栈顶元素指针),int num(栈里结点数)以及3个公有成员函数:push(元素入栈)、pop(元素出栈)和stackempty(判断栈是否为空),并建立一个整数栈和一个字符栈。 template class T class stack { }; 注意:为了能够生成结点类型不同的链式栈,结点类的设计也需要用类模板。 templateclass T class Node { }; ? 输入描述 输入整数栈的数据元素和字符栈的数据元素 ? 输出描述 输出整数栈的数据元素出栈序列和字符栈的数据元素出栈序列 ? 输入样例 4 8 3 2 a d b c ? 输出样例 2 3 8 4 c b d a ?#includeiostream using namespace std; template class T class stack { template class T1 class Node { T1 a ; NodeT1 *next ; public: Node(T1 x):a(x) {} void show() { cout a endl ; } friend class stackT1 ; }; NodeT *head ; int num ; public: stack() { num = 0 ; head = NULL ; } void push(T x) { NodeT *p = new NodeT(x) ; p-next = head ; head = p ; num++ ; } T pop() { NodeT *p = head ; head = head-next ; T t = p-a ; delete p ; num-- ; return t ; } bool stackempty() { if( head == NULL ) return true; else return false; } }; int main() { stackint a ; stackchar b ; int x ; char y ; for(int i = 0 ; i 4 ; i ++ ) { cin x ; a.push(x) ; } for( int i = 0 ; i 4 ; i ++ ) { cin y ; b.push(y); } for( int i = 3 ; i = 0 ; i -- ) { a.stackempty() ; cout a.pop() ; } cout endl ; for( int i = 3 ; i = 0 ; i -- ) { b.stackempty(); cout b.pop() ; } cout endl ; return 0 ; } 2. ? (10分) 二进制类(1)——运算符重载 题目描述 将一个16位二进制数表示成0和1的字符序列,即用一个字符数组来存放这个二进制数。在这个类中设置两个构造函数,一个是传递整数参数的,另一个是传递字符串参数的。因为用户在创建对象时传递的二进制数,可能是以整数形式给出,也可能是以数字串形式给出,系统应该都能接受。另外有一个类型转换函数int(),用来将类类型向整型转换。两个重载运算符“+”,“-”,用来完成两个二进制数之间的加减运算。 class binary { //定义二进制类 char bits[16]; //二进制字模数组 public: binary(char *); //字符串参数构造函数 binary(int); //整型参数构造函数 friend binary operator +(binary,binary); //重载“+” friend binary operator -(binary,binary); //重载“-” operator int(); //类类型转换函数 void print(); }; 主函数设计如下: int main() { binary n1=1011; binary n2=int(n1)+15; binary n3=n1-binary(7); n1.print(); n2.print(); n3.print(); coutint(n2)+5endl; coutn2-bina

文档评论(0)

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

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

1亿VIP精品文档

相关文档