首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
admin
2009-02-15
79
问题
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。
【说明】
以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
【C++程序】
#ifndef H_MiniComplex
#define H_MiniComplex
#include <iostream>
using namespace std;
class MiniComplex{
public: //重载流插入和提取运算符
(1) ostream&operator<<(ostream &osObject,const MiniComplex&complex){
osObject<<"("<<complex.realPart<<"+"<<complex.imagPart<<"i"<<")";
return osObject;
}
(2) istream&operator>>(istream&isObject, MiniComplex&complex){
char ch;
isObject >>complex.realPart>>ch>>complex.imagPart>>ch;
return isObject;
}
MiniComplex(double real=0,double imag=0); //构造函数
MiniComplex operator+(const MiniComplex&otherComplex)const; //重载运算符+
MiniComplex operator-(const MiniComplex&otherComplex)const; //重载运算符-
MiniComplex operator*(const MiniComplex&otherComplex)const; //重载运算符*
MiniComplex operator/(const MiniComplex&otherComplex)const; //重载运算符/
bool operator==(const MiniComplex&otherComplex)const; //重载运算符==
private :
double (3);
double imagPart;
};
#end if
#include "MiniComplex.h"
bool MiniComplex::operator==(const MiniComplex&otherComplex)const{
return(realPart==otherComplex.realPart&&imagPart==ortherComplex.imagPart);
}
MiniComplex::MiniComplex(double real,double imag){
realPart== real; imagPart==imagPart;
}
MiniComplex MiniComplex::operator+(const MiniComplex&otherComplex)const{
MiniComplex temp;
temp.realPart = realPart+ortherComplex. realPart;
temp.imagPart = imagPart +ortherComplex. imagPart;
return temp;
}
(4)
{ MiniComplex temp;
temp.realPart= realPart-ortherComplex. realPart;
temp.imagPart = imagPart-ortherComplex. imagPart;
return temp;
}
MiniComplex MiniComplex::operator*(const MiniComplex&otherComplex)const{
MiniComplex temp;
temp.realPart = (realPart*ortherComplex. realPart)-(imagPart *ortherComplex.imagPart);
temp.imagPart = (realPart*ortherComplex. imagPart)+(imagPart *ortherComplex.realPart);
return temp;
}
MiniComplex MiniComplex::operator/(const MiniComplex&otherComplex)const{
MiniComplex temp;
float tt;
tt=1/(ortherComplex.realPart*ortherComplex.realPart+ortherComplex.imagPart *ortherComplex. imagPart);
temp.realPart=((realPart*ortherComplex, realPart)+(imagPart *ortherComplex. imagPart))*tt;
temp.imagPart =((imagPart *ortherComplex. realPart)-(realPart*ortherComplex. imagPart))*tt;
return temp;
}
#include <iostream>
#include <MiniComplex.h>
using namespace std;
int main(){
MiniComplex numl(23, 34),num2(56, 35);
cout<<"Initial Value of num1="<<num1<<"\n Initial Value of num2="<<num2<<end1;
cout<<num1<<"+"<<num2<<"="<<num1+num2<<end1; //使用重载的加号运算符
cout<<num1<<"-"<<num2<<"="<<num1-num2<<end1; //使用重载的减号运算符
cout<<num1<<"*"<<num2<<"="<<num1*num2<<end1; //使用重载的乘号运算符
cout<<num1<<"/"<<num2<<"="<<num1/num2<<end1; //使用重载的除号运算符
(5);
}
选项
答案
(1)friend (2)friend (3)RealPart (4)MiniComplex MiniComplex::operator-(const MiniComplex&otherComplex)const (5)return 0
解析
这是一道要求读者掌握操作符重载的程序设计题。本题的解答思路如下。
运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用别:不同类型的数据时导致不同的行为。运算符重载的实质就是函数重载,在实现过程中,首先把指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参,然后根据实参的类型来确定需要调用的函数,这个过程是在编译过程中完成的。
运算符的重载形式有重载为类的成员函数和重载为类的友元函数两种。其中,运算符重载为类的成员函数的一般语法形式如下。
函数类型 operator 运算符(形参表)
{ 函数体; }
运算符重载为类的友元函数要在类中声明友元函数的原型:
friend 函数类型 operator 运算符(形参表);
然后,在类外实现函数。也可在类体中写成内联形式:
friend 函数类型 operator 运算符(形参表)
{ 函数体; }
函数类型重载为类的成员函数时,函数的参数个数比原来的操作数个数要少一个(后置“++”、“--”除外),因为有一个操作数是对象本身,由this指针指出。后置“++”、“--”运算符重载时,为了与相应的前置运算符区别,需要一个int参数。
当重载为类的友元函数时,参数个数与原操作数个数相同,运算所需要的操作数都需要通过函数的形参表来传递,在形参表中形参从左到右的顺序就是运算符操作数的顺序。运算符重载的规则如下。
1)只能重载C++语言中已经定义过的运算符。
2)重载之后运算符的优先级和结合性都不会改变。
3)不能改变原运算符的操作对象个数,同时至少要有一个操作对象是自定义类型。
对于本试题,在该小型复数类MiniComplex中,函数成员主要是重载进行复数运算的各种操作符。由于各种运算符功能的限制,将输入和输出运算符重载为友元函数,使得复数的输入和输出更加方便。因此(1)、(2)空缺处所填写的内容都足“friend"。
使用成员函数形式重载“+、-、*、/”运算符来进行复数的加法、减法、乘法和除法运算。重载逻辑运算符“==”进行复数的相等比较。数据成员包含:实部(RealPart)和虚部(ImagPart)。因此(3)空缺处所填写的内容是“RealPart”。
(4)空缺处是重载减号的函数,所以应填入“MiniComplex MiniComplex::operator-(const MiniComplex &otherComplex)const”。
由于主函数main()没有返回值,因此(5)空缺处所填写的内容是“return 0”。
转载请注明原文地址:https://kaotiyun.com/show/ybjZ777K
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
下列关于Word文本编辑的叙述中,不正确的是(33)。
信息处理技术员教程共有318页,甲在第一天看了全书的1/6,第二天看了剩下的1/5,第三天应从第(32)页开始看。
一般来说,收集到的数据经过清洗后,还需要进行分类、排序等工作。这样做的好处主要是(65)________________。
信息系统运行过程中的数据备份工作不包括________________。
将四个元素a,b,c,d分成非空的两组,不计组内顺序和组间顺序,共有()种分组方法。
关于在Word中选定文本的叙述,正确的是(43)。
西部某省考试机构工作人员统计了去年下半年三个地区四种资格的报考人数,将统计表抄录如下(其中有一个数据抄错了): 信息处理技术员小王很快就找出了错误的数据,并进行了纠正。错误的数据是(32),该数据应纠正为(33)。32.
阅读以下说明,回答问题1至问题5,将解答填入答题纸对应的解答栏内。说明某公司内部有一个采用TCP/IP作为传输协议的100BASE-TX局域网,包括1台服务器和20台客户机,通过一台16端口的交换机与一台8端口共享集线器级连,其网络结构如图11所
为什么一般处理“震荡波”病毒时,首先要把被侵入的计算机系统从网络上断开?在计算机系统发现病毒并清除以后,在未接入网络之前,从安全方面考虑,若需重新安装操作系统,通常需要执行以下几项主要工作后,方可接入网络。请给出下列工作的合理顺序。A.安装操作
认真阅读下列说明,根据网页显示的效果图,并解释其中用下划线标出的语句的含义。[说明]某在线娱乐公司用ASP实现了一个用于在线点播电影的网页,主页文件名为“index.asp”,网页运行的效果如下图所示。程序中使用的Acess数据表结构如下
随机试题
A.保守治疗B.单纯疝囊高位结扎术C.无张力疝修补术D.疝囊高位结扎+疝修补术合并糖尿病的腹股沟斜疝应慎用
小儿死亡率最高的时期为
男,60岁,突发心前区疼痛4小时,心电图示急性前壁心肌梗死,既往无高血压、癫痫和出血性疾病史。入院时心率80次/分,律齐血压150/90mmHg(20/12kPa),人院后2小时突然出现短暂意识丧失,抽搐,心音消失。
属于牙体慢性损伤的组别是
根据《水利工程建设项目施工监理规范》SL288—2003的有关规定,监理机构可采用平行检测方法对承包人的检验结果进行复核。平行检测的检测数量,土方试样不应少于承包人检测数量的();重要部位至少取样()组。
以下不属于代理形式的是( )。
改组前的企业取得土地使用权的.可以由上市公司与原企业签订土地租赁合同,由上市公司实际占用土地。()
根据国有资产评估管理的有关规定,国有资产占有单位发生的下列行为中,应当进行资产评估的有()。
请简要回答信息技术的发展所经历的五次重大变革。
Asayoungbondtrader,Buttonwoodwasgiventwopiecesofadvice,tradingrulesofthumb,ifyouwill:thatbadeconomicnewsi
最新回复
(
0
)