- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
复习-第2章-2
class实现长整数--长整数类型 class LongInt { public: DuLink L; LongInt(); //构造一个长整数 LongInt ( const LongInt a); ~LongInt(); //销毁长整数 bool IsEmpty(); //判断线性表是否空 void Clear(); //清空线性表的元素 void InsertHead(int e); //在线性表表头插入数据元素e void InsertTail(int e); //在线性表表尾插入数据元素e void DeleteHead(); //在线性表表头删除数据元素e void Show(); //显示长整数 class实现长整数--长整数类型 class LongInt { //利用输入字符串创建长整数 //如 -123456 变成 -, 12, 3456, //再存储到长整数数据类型中 bool Create (char *exp); LongInt operator= ( const LongInt a ); LongInt operator+ ( const LongInt a ) const; LongInt operator- ( const LongInt a ) const; }; class实现长整数--拷贝构造函数 LongInt:: LongInt (const LongInt a) { L = new DuLNode; if(!L) return; L-data = a.L-data; L-next = L; L-prior = L; DuLink p; p = a.L-next; while(p!=a.L) { InsertTail(p-data); p = p-next; } } 拷贝构造函数 在C++中,下面三种对象需要调用拷贝构造函数: 一个对象作为函数参数,以值传递的方式传入函数体; 一个对象作为函数返回值,以值传递的方式从函数返回; 一个对象用于给另外一个对象进行初始化; 隐式的拷贝构造函数: 如果在类中没有显式的声明一个拷贝构造函数,那么,编译器会自动生成一个来进行对象之间成员的位拷贝(Bitwise Copy) 包含动态分配成员的类除提供拷贝构造函数外,还应该考虑重载=赋值操作符号 class实现长整数– 重载= LongInt LongInt::operator= ( const LongInt a) { Clear(); L-data = a.L-data; L-next = L; L-prior = L; DuLink p; p = a.L-next; while(p!=a.L) { InsertTail(p-data); p = p-next; } } class实现长整数– 重载+ LongInt LongInt:: operator+ ( const LongInt a) const { LongInt c; DuLink pa, pb, pc; //指向a, this, result结点的指针 int sign_a, sign_b; //长整数a, this 的符号标志 int sign; //相加结果符号标志 int sum; //结点相加中间变量 //从低位开始相加 pa = a.L-prior; pb = L-prior; sign_a = a.L-data; sign_b = L-data; class实现长整数– 重载+ //处理a, b中相同位阶的数 while(pa != a.L pb != L) { sum = pa-data*sign_a + pb-data*sign_b; c.InsertHead(sum); pa = pa-prior; pb = pb-prior; } class实现长整数– 重载+ while(pa != a.L) //a 的位数比 b 多,处理a的剩余位 { sum = pa-data*sign_a; c.InsertHead(sum); pa = pa-prior; } while(pb != L) //b 的位数比 a 多,处理b的剩余位 { sum = pb-data*sign_b; c.InsertHead(sum); pb = pb-prior; } cla
您可能关注的文档
- 基于Hadoop的医疗云平台构建研究_刘晶.docx
- 基于interRAI评估系统的长期照护体系.pptx
- 基于jmeter的服务端性能测试-neil.ppt
- 基于labview的语音信号采集系统.docx
- 基于MATLAB双容水槽液位控制系统设计.doc
- 培训材料二:室内覆盖类项目标准质量手册介绍.pptx
- 基于MATLAB的电磁场动画仿真.ppt
- 基于MFC和SQL的数据库编程报告.docx
- 基于MFC的测量程序开发.docx
- 基于OFDM导频信号的雷达感知技术研究.doc
- 浙江金华市公共资源交易中心永康市分中心编外人员招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波慈溪市政协办公室招考聘用编外工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江金华永康市西溪镇人民政府招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 福建南平市公安局建阳分局招考聘用辅警笔试历年典型考题及考点研判与答案详解.docx
- 浙江嘉兴海盐县武原街道基层残疾人工作专职委员(公益岗位)招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 浙江宁波知识产权保护中心招考聘用工作人员笔试历年典型考题及考点研判与答案详解.docx
- 浙江杭州建德市面向2024届普通高校毕业生招考聘用教师(第二批)16人笔试历年典型考题及考点研判与答案详解.docx
- 浙江省台州中学面向2024届普通高校毕业生招考聘用教师12人笔试历年典型考题及考点研判与答案详解.docx
- 湖北师范大学体育学院专任教师招考聘用笔试历年典型考题及考点研判与答案详解.docx
- 重庆市南岸区教育事业单位面向2024届高校毕业生招考聘用114人笔试历年典型考题及考点研判与答案详解.docx
文档评论(0)