首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
admin
2009-02-15
39
问题
阅读以下程序说明和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://jikaoti.com/ti/lrW7FFFM
本试题收录于:
程序员下午应用技术考试题库软考初级分类
0
程序员下午应用技术考试
软考初级
相关试题推荐
人工智能(AI)时代,人类面临许多新的安全威胁。以下(60)________________不属于安全问题。
在使用计算机的过程中应增强的安全意识中不包括________________。
如果表A和表B中有公共字段,且该字段在表B中称为主键,则该字段在表A中称为________________。
《数据中心设计规范》GB50174-2017属于()。
计算机操作系统的主要功能是______。
(1)是固化在主板ROM内的程序,为计算机提供最底层、最直接的硬件访问和控制。
在Excel2010的A1单元格中输入函数“=IF(1<>2,1,2)”,按回车键后,A1单元格中的值为________________。
某公司下设4个分公司A、B、C、D,上月各分公司的销售额及其在总公司所占比例如下表所示。由于此表单受潮,有些数据看不清了,但还可以推算出来。根据推算, D公司上月的销售额为(68)万元。
计算机在接通电源后,系统首先由(41)程序对内部每个设备进行测试。
随机试题
骨化有________和________两种方式。
管路交叉时,一般将上面(或前面)的管路断开;也可将下方(或后方)的管路画上断裂符号断开。()
Thereisasmallfilmsocietyinmyvillage.I’monit.Thereareaboutforty【36】.Thefilmsocietygivesusthechancetoseeo
肺癌的细支气管充气征形成的病理基础是
在线性范围内,测得浓度为10.0μg/L钙标准溶液的吸光度为0.100,同时测得一试样溶液的吸光度为0.156,计算其浓度为
药物临床评价是指
根据《药品不良反应监督管理办法》下列情形属于药品严重不良反应的有
风险管理领域的管理会计工具方法一般包括()。
Thethreeboysweregivenworkaccordingtotheir______abilities.
Somepeoplebelievethatstudentsshouldbegivenonelongvacationeachyear.Othersbelievestudentsshouldhaveseveralshort
最新回复
(
0
)