C++程序设计实验6学习资料_第1页
C++程序设计实验6学习资料_第2页
C++程序设计实验6学习资料_第3页
C++程序设计实验6学习资料_第4页
C++程序设计实验6学习资料_第5页
已阅读5页,还剩11页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

资料收集于网络,如有侵权请联系网站删除实验6运算符重载实验目的掌握运算符重载的规则;掌握运算符成员函数与运算符友元函数的实现及应用;学会定义类中单目和双目运算符的重载函数;理解重载运算符的作用,学会对典型的运算符进行重载。实验学时本次实验需要2个学时。实验要求实验上机之前根据实验内容要求自行设计编写程序完成预习报告。验上机时调试并修正程序。当次上机结束前分析错误原因并给出实验结论,提交实验报告。实验内容1.基部分(1)定义复数complex包括私有数据成员实real和虚部image。定义该类的构造,拷贝构造,析构函数。为该类重载运算+-友元函数前置和后置++,(成员函数插入符和取符>>友元函数在函数里定义复数对象,测试重载的这些运算符。2.进部分(2设计一个mystring包括数据成员*pstr;和intlength;通过运算符重载实现字符串的输入>、输出<、连接+=、赋=、关系运算==、!=、、<标[]等运算。(定义复数类complex包私有数据成员实部和部定义该类的构造,拷贝构造,析构函数。为该类重载运算元函数后+成函数和取<<(友元函数在函里定义复数对象,测试重载的这些运算符。#include<iostream>#include<string>word可辑资料收集于网络,如有侵权请联系网站删除namespaceclass{real1=0,intimage1=0):real(real1),image(image1){}~Complex(){};ComplexComplexconst&a2);Complexoperator-(constComplexComplex&a2);operator--(int);ostream&operator<<(ostream&Complex&a3);operator>>(istream&Complex&a3);intintimage;};&a1,constComplex&a2){Complex(a1.real+a2.real,+}Complexconst{Complex(a1.real-a1.imagea2.image);}Complex::operator++(){*this;}{word可辑资料收集于网络,如有侵权请联系网站删除a*this;++(*this);}Complex::operator--(){--image;*this;}Complex::operator--(int){a*this;--(*this);*this;}operator<<(ostream&os,a3){os<<a3.real<<"+"<<<<"i";}istream&operator>>(istream&{is>>a3.real>>}int{a5(6,7),A,B;cout<<a4<<endl;cout<<a5<<endl;cout<<"请重新为对输入数据"cin>>word可辑资料收集于网络,如有侵权请联系网站删除cin>>cout<<"重新输入后a4"<<endl;cout<<"重新输入后a5"<<endl;A=a4cout<<"重载修改后加法A:";cout<<A<<endl;A=a4-cout<<"重载修改后减法A:";cout<<A<<endl;cout<<"载修改后前置++:"<<++a4endl;cout<<"载修改后后置+<<a5++endl;cout<<"重载修改后再次修改的前置endl;cout<<"重载修改后再次修改的后置endl;0;}(2设计一个mystring类包括数据成员char*pstr;和int通运符重载实现字符串的输入>>、输出<<、+、赋值=、关系运算(==、!=、>、标[]等算。<iostream><string>namespaceclassmystring{mystring(char~mystring(){free(pstr);}mystring&operator=(mystring&word可辑资料收集于网络,如有侵权请联系网站删除void&a){this->pstr=(char*)realloc(this->pstr,this->length+1);+(this->length),}char&&{ifs.pstr)==1;0;}!=(constmystring&s){ifs.pstr)1;0;}<(constmystring&s){ifs.pstr)<0)1;0;}>(constmystring&s){ifs.pstr)>0)1;0;word可辑资料收集于网络,如有侵权请联系网站删除}&<<(ostream&mystring&{return<<s.pstrstrlen(s.pstr);}&operator>>(istream&&{is>>s.length;s.pstr=newchar[s.length1];is>>+=}int};*p){this->pstr=(char*)malloc(strlen(p)+1);p);strlen(p);}mystring&mystring::&{delete[]pstr;this->pstr=char[strlen(s.pstr)+1];if(pstr)strcpy(this->pstr,s.pstr);return*this;}char&mystring::operator[](int{charch=0;if>length0){cout<<"数组越界"<<endl;word可辑资料收集于网络,如有侵权请联系网站删除ch;}*(pstrn);}int{mystringb("defe");//mystringc(a);//cout<<c;cout<<""<<endl;a=cout<<endl;a+=cout<<endl;cin>>a;cout<<endl;if>b){cout<<"a字符串更大"<<a<<endl;}if<b)cout<<"b字串更大"<<bendl;if==b)word可辑资料收集于网络,如有侵权请联系网站删除cout<<"a,b相"<<a<<endl;if!=cout<<"a,b不等"<<endl;'cout<<endl;}实验心得:本次实验们所学习的是函数的重载,函数的重载是为了满足不环境下调用函数不同的问题。比如求最大值,我们三个值最大值,两个值求更大值。在这里运用函数的重载我只需定义一个函数为max,采用不同个的形参就可以完成,样使读者更加的清晰你要在这个函数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论