C++第9次作业.doc

上传人:b****2 文档编号:1639342 上传时间:2022-10-23 格式:DOC 页数:7 大小:62KB
下载 相关 举报
C++第9次作业.doc_第1页
第1页 / 共7页
C++第9次作业.doc_第2页
第2页 / 共7页
C++第9次作业.doc_第3页
第3页 / 共7页
C++第9次作业.doc_第4页
第4页 / 共7页
C++第9次作业.doc_第5页
第5页 / 共7页
点击查看更多>>
下载资源
资源描述

C++第9次作业.doc

《C++第9次作业.doc》由会员分享,可在线阅读,更多相关《C++第9次作业.doc(7页珍藏版)》请在冰豆网上搜索。

C++第9次作业.doc

实验九:

多态性

(一)

1、定义计数器Counter类,对其重载运算符+。

实验代码:

#include

classcounter

{

private:

intn;

public:

counter(){n=0;}

counter(inti){n=i;}

counteroperator+(counterc)

{

countertemp;

temp.n=n+c.n;

returntemp;

}

voiddisp()

{

cout<<"n="<

}

};

voidmain()

{

counterc1(15),c2(10),c3;

c3=c1+c2;

c1.disp();

c2.disp();

c3.disp();

}

实验结果:

2、定义一个基类BaseClass,从它派生出类DerivedClass,BaseClass有成员函数fn1()、fn2(),DerivedClass也有成员函数fn1()、fn2(),在主程序中定义一个DerivedClass的对象,分别用DerivedClass的对象以及BaseClass和DerivedClass的指针来调用fn1()、fn2(),观察运行结果。

实验代码:

#include

classBaseClass

{

public:

voidfn1();

voidfn2();

};

voidBaseClass:

:

fn1()

{

cout<<"调用基类的函数fn1()"<

}

voidBaseClass:

:

fn2()

{

cout<<"调用基类的函数fn2()"<

}

classDerivedClass:

publicBaseClass

{

public:

voidfn1();

voidfn2();

};

voidDerivedClass:

:

fn1()

{cout<<"调用派生类的函数fn1()"<

voidDerivedClass:

:

fn2()

{cout<<"调用派生类的函数fn2()"<

voidmain()

{

DerivedClassaDerivedClass;

DerivedClass*pDerivedClass=&aDerivedClass;

BaseClass*pBaseClass=&aDerivedClass;

aDerivedClass.fn1();

aDerivedClass.fn2();

pBaseClass->fn1();

pBaseClass->fn2();

pDerivedClass->fn1();

pDerivedClass->fn2();

}

实验结果:

3、实现重载函数Double(x),返回值为输入参数的两倍;参数分别为整型、长整型、浮点型、双精度型,返回值类型与参数一样。

实验代码:

#include

usingnamespacestd;

intDouble(inta){return2.0*a;}

longintDouble(longinta){return2*a;}

floatDouble(floata){return2.0*a;}

doubleDouble(doublea){return2.00000*a;}

voidmain(){

intm;

cout<<"输入一个整型数:

";

cin>>m;

cout<<"它的两倍是"<

longintp;

cout<<"输入一个长整型数:

";

cin>>p;

cout<<"它的两倍是"<

floatr;

cout<<"输入一个浮点型数:

";

cin>>r;

cout<<"它的两倍是"<

doublen;

cout<<"输入一个双精度数:

";

cin>>n;

cout<<"它的两倍是"<

}

实验结果:

4、定义一个复数类,重载“+”;“-”;“*”,“/”运算符实现复数的四则运算。

实验代码:

#include

classcomplex

{

private:

doublereal;

doubleimag;

public:

complex()

{

real=imag=0;

}

complex(doublerpart,doubleipart)

{

real=rpart;

imag=ipart;

}

complexoperator+(constcomplex&com)

{

complextemp;

temp.real=real+com.real;

temp.imag=imag+com.imag;

returntemp;

}

complexoperator-(constcomplex&com)

{

complextemp;

temp.real=real-com.real;

temp.imag=imag-com.imag;

returntemp;

}

complexoperator*(constcomplex&com)

{

complextemp;

temp.real=real*com.real-imag*com.imag;

temp.imag=real*com.imag+imag*com.real;

returntemp;

}

complexoperator/(constcomplex&com)

{

complextemp;

temp.real=(real*com.real+imag*com.imag)/(com.real*com.real+com.imag*com.imag);

temp.imag=(imag*com.real-real*com.imag)/(com.real*com.real+com.imag*com.imag);

returntemp;

}

voiddisplay()

{

if(imag>=0)

cout<<"("<

else

cout<<"("<

}

};

intmain(void)

{

doublea,b,c,d;

cout<<"输入两个复数,即a,b,c,d的值:

";

cin>>a>>b>>c>>d;

complexn1(a,b),n2(c,d);

cout<<"两个复数值为:

";

cout<<"A=";

n1.display();

cout<<"B=";

n2.display();

cout<

cout<

"<

complexresult1;

result1=n1+n2;

n1.display();

cout<<"+";

n2.display();

cout<<"=";

result1.display();

cout<

"<

complexresult2;

result2=n1-n2;

n1.display();

cout<<"-";

n2.display();

cout<<"=";

result2.display();

cout<

"<

complexresult3;

result3=n1*n2;

n1.display();

cout<<"×";

n2.display();

cout<<"=";

result3.display();

cout<

"<

if(c==0&&d==0)

cout<<"不能进行运算,除数不能为0"<

else

{

complexresult4;

result4=n1/n2;

n1.display();

cout<<"÷";

n2.display();

cout<<"=";

result4.display();

}

cout<

return0;

}

实验结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 材料科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1