77范文网 - 专业文章范例文档资料分享平台

C++面向对象程序设计实验指导书[1](7)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C++面向对象程序设计实验指导书 实验七

private:

float real; float imag; };

CComplex &operator--(CComplex &x) {

x.real -= 1; x.imag -= 1; return x; }

void main() {

CComplex obj1(2.1,3.2); CComplex obj2(3.6,2.5); cout<<\; obj1.print(); cout<<\; obj2.print();

CComplex obj3 = obj1 + obj2; cout<<\; obj3.print(); ++obj3;

cout<<\; obj3.print(); --obj3;

cout<<\; obj3.print();

CComplex obj4 = ++obj3; cout<<\; obj4.print(); }

问题一:以上程序中的三个运算符重载都有错误,试改正过来,并分析该程序的输出结果。

7.2.2 程序设计

1.把7.2.1中第一道题的程序改造成采取友元函数重载方式来实现“+”运算符,并采取友元函数重载方式增加前置和后置“++”以及“--”运算符重载,并设计主函数来验证重载运算符的用法。

27

C++面向对象程序设计实验指导书 实验七

7.3思考题

1.定义CPoint类,有两个成员变量:横坐标(x)和纵坐标(y),对CPoint类重载“++”(自增运算符)、“--”(自减运算符),实现对坐标值的改变。(每个函数均采用友元禾成员函数实现)

28

C++面向对象程序设计实验指导书 实验八

实验八 多态性—类型转换与虚函数

8.1 实验目的

1.理解掌握运算符[]、()的重载;

2.理解类型转换,掌握类型转换函数的设计和使用; 3.理解和掌握虚函数的作用;

4.掌握利用虚函数实现C++的运行时多态性; 5.理解纯虚类和抽象类。

8.2 实验内容 8.2.1程序阅读

1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include #include \

class CComplex {

public:

CComplex(double r = 0, double i = 0) { real = r; imag = i; }

int operator int() { return (int)real; }

void Display(void) { cout << \ << real << \ << imag << \ << endl; }

protected:

double real; double imag; };

29

C++面向对象程序设计实验指导书 实验八

class CVector {

public:

CVector(CComplex &obj1, CComplex &obj2, CComplex &obj3, CComplex &obj4) { objArray[0] = obj1; objArray[1] = obj2; objArray[2] = obj3; objArray[3] = obj4; }

friend CComplex &operator[](CVector obj, int n); private:

CComplex objArray[4]; };

CComplex &operator[](CVector obj, int n) {

if(n<0 || n>3) { cout<<\<

return obj.objArray[n]; }

void main() {

CComplex c1(1.1, 1.1); CComplex c2(2.2, 2.2); CComplex c3(3.3, 3.3); CComplex c4(4.4, 4.4);

CVector v(c1,c2,c3,c4);

v[0].Display(); v[1].Display(); v[2].Display(); v[3].Display();

v[0] = 5.5; ----------------------------------------------------------① v[1] = CComplex(6.6); -------------------------------------------② v[2] = int(CComplex(7.7)); --------------------------------------③ v[3] = int(CComplex(8.8,9.9)); ----------------------------------④

30

C++面向对象程序设计实验指导书 实验八

}

v[0].Display(); v[1].Display(); v[2].Display(); v[3].Display();

问题一:上述程序存在两大错误,在不修改主函数和程序原意的前提下,改正该程序中存在的错误。

问题二:①处的转换属于显式转换还是隐式转换,并解释该转换过程。 问题三:②处的转换属于显式转换还是隐式转换,并解释该转换过程。 问题四:解释③处的转换过程。 问题五:解释④处的转换过程。

8.2.2 程序设计

1.编写一个程序计算三角形、正方形和圆形的面积,要求抽象出一个基类base,在其中说明一个虚函数,用来求面积,并利用单接口,多实现版本设计各图形面积的方法。

8.3思考题

1.设计一个汽车类Motor,该类具有可载人数、轮胎数、马力数、生产厂家和车主五个数据成员,根据Motor类派生出Car类、Bus类和Truck类。其中Bus类除继承基类的数据成员外,还具有表示车厢节数的数据成员Number;Truck类除继承基类的数据成员之外,还具有表示载重量的数据成员Weight。每个类都具有成员函数Display,用于输出各类对象的相关信息。要求设计一个统一的显示相关信息的全局函数ShowInfo在主函数种调用,主函数中不直接调用类里面的Display函数。

31

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++面向对象程序设计实验指导书[1](7)在线全文阅读。

C++面向对象程序设计实验指导书[1](7).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/400705.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: