首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
阅读以下程序说明和C++程序,将程序段中(1)~(5)空缺处的语句填写完整。 【说明】 以下【C++程序】实现一个简单的小型复数类MiniComplex,该复数类能进行输入、输出、复数的加法、减法、乘法和除法运算,还可以进行复数的相等比较。
admin
2009-02-15
77
问题
阅读以下程序说明和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
程序员下午应用技术考试
软考初级
相关试题推荐
文件abc.docx______。
信息处理技术员教程共有318页,甲在第一天看了全书的1/6,第二天看了剩下的1/5,第三天应从第(32)页开始看。
数据处理过程中,影响数据精度的因素不包括(10)________________。
在Excel工作表中,已输入的数据如下所示:按回车键后,B2单元格显示的值为()。
Make()copiesofimportantfiles,andstorethemonseparatelocationstoprotectyourinformation.
为使双击指定类型的文件名就能调用相应的程序来打开处理它,需要将这种文件类型与相应的程序建立文件(23)。
要在数据库表中查找年龄超过40岁的女性,应使用(56)________________运算。
在Access中,查询“学生”数据表的所有记录及字段的SQL语句是______。
阅读以下说明,回答问题1至问题4。说明某公司A楼高40层,每层高3.3米,同一楼层内任意两个房间最远传输距离不超过90米,A楼和B楼之间距离为500米,需在整个大楼进行综合布线,结构如图1-1所示。为满足公司业务发展的需要,要求为楼内客户机提供数
从网络连接的角度来看,代理服务器承担了何种网络设备的功能?为了实现内部计算机客户端通过代理服务器访问Internet,还需对客户端n浏览器的有关参数进行配置。打开IE浏览器的“Internet属性”窗口,选择“连接”选项卡,进入“局域网设置”窗口,如图
随机试题
为了确诊,还应做主诉牙的治疗设计如下,除外
痛痹的临床特征是
妇女生殖器官疾病的保健的关键是()
A.普通处方B.药师处方C.法定处方D.麻醉药品和第一类精神药品处方E.第二类精神药品处方应当添加患者身份证明编号的处方是()。
如果文档中的内容在一页未满的情况下需要强制换页时,最快捷的方法应是()。
根据证券经纪业务主要环节的操作规范,在证券委托买卖方面,以下表述中,错误的是()。
(2008年考试真题)消极型股票投资战略的理论基础在于()。
关于马赫带的说法正确的是()
简述1947年《中华民国宪法》的内容,并作简要评价。
Geographyisthestudyoftherelationshipbetweenpeopleandtheland.Geographers(地理学家)compareandcontrast【C1】______placeso
最新回复
(
0
)