《C++面向对象程序设计》课件第6章.ppt

  1. 1、本文档共171页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

四、写出运行结果并上机验证

1.分析程序的功能,写出执行过程及运行结果。

#includeiostream

usingnamespacestd;

#includestdlib.h

classFranc

{

private:intnume;

intdeno;

public:

Franc(){}

friendFrancoperator++(Francf); //前置运算符“++”重载友元函数

friendFrancoperator++(Francf,int); //后置运算符“++”重载友元函数

friendistreamoperator(istreamistr,Francx);//从键盘上按规定格式输入一个分数到x中,“”运算符重载

friendostreamoperator(ostreamostr,Francx);

//按规定格式输出一个分数,运算符重载

};

Francoperator++(Francf)

{ //先增1,然后返回它的引用

f.nume+=f.deno;returnf; //返回结果分数

}

Francoperator++(Francf,int)

{

Francx=f;

f.nume+=f.deno;

returnx;

}istreamoperator(istreamistr,Francf)

{charch;

coutInputafranction(a/b):;

istrf.numechf.deno;

if(f.deno==0)

{

cerr除数为零!endl;

exit(1); //终止程序运行,返回C++主操作窗口

} returnistr;

}

ostreamoperator(ostreamostr,Francf)

{

ostrf.nume/f.deno;

returnostr;

}

voidmain()

{Francf; //定义分数类对象

cinf; //用重载运算符“”实现分数输入

cout“f=”fendl;

//用重载运算符“”实现分数输出

cout++f=++fendl; //重载前置“++”

coutf++=f++endl; //重载后置“++”

coutf=fendl;

}2.下面的程序中有7处错误,请指出并修改,并写出正确的运行结果。

#includeiostream

usingnamespacestd;

classX1

{

intx;

public:

X1(intxx){x=xx;}

voidOutput()=0;

};classY1:privateX1

{

inty;

public:

Y1(intxx=0,intyy=0):X1(xx)

{y=yy;}

virtualvoidOutput()

{

coutx=x,y=yendl;

}

}; classZ1:protectedX1

{

intz;

public:

Z1(intxx=0,intzz=0):X1(xx)

{z=zz;}

voidOutput(){

coutx=x,z=zendl;

}

};

voidmain()

{ X1a(2);

Y1b(3,4);Z1c(5,6);

X1*p[3]={a,b,c};

for(inti=0;i3;i++){

p[i]-Output();

}

}t1.displayStatus();

//销售经理:;

salesManagersm1;

sm1.promote(2);

sm1.pay();

sm1.displayStatus();

//兼职推销员:;

salesmans1;

s1.promote(3);s1.pay();

s1.displayStatus();

cout\n使基类指针指向子类对象endl;

employee*ptr[4]={m1,t1,sm1,s1};

for(inti=0;i4;i++)

ptr[i]-displayStatus();

}程序运行结果为:

输入雇员姓名:w

您可能关注的文档

文档评论(0)

酱酱 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档