C++第9次作业

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验九: 多态性(一)

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

实验代码:

#include

class counter

{

private:

int n;

public:

counter( ) { n=0;}

counter(int i) {n=i;}

counter operator+(counter c)

{

counter temp;

temp.n=n+c.n;

return temp;

}

void disp( )

{

cout<<"n="<

}

};

void main()

{

counter c1(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

class BaseClass

{

public:

void fn1();

void fn2();

};

void BaseClass::fn1()

{

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

}

void BaseClass::fn2()

{

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

}

class DerivedClass : public BaseClass

{

public:

void fn1();

void fn2();

};

void DerivedClass::fn1()

{ cout << "调用派生类的函数fn1()" << endl; } void DerivedClass::fn2()

{ cout << "调用派生类的函数fn2()" << endl; } void main()

{

DerivedClass aDerivedClass;

DerivedClass *pDerivedClass = &aDerivedClass;

BaseClass *pBaseClass = &aDerivedClass;

aDerivedClass.fn1();

aDerivedClass.fn2();

pBaseClass->fn1();

pBaseClass->fn2();

pDerivedClass->fn1();

pDerivedClass->fn2();

}

实验结果:

3、实现重载函数Double(x),返回值为输入参数的两倍;参数分别为整型、长整型、浮点

型、双精度型,返回值类型与参数一样。

实验代码:

#include

using namespace std;

int Double(int a){return 2.0*a;}

long int Double(long int a){return 2*a;}

float Double(float a){return 2.0*a;}

double Double(double a){return 2.00000*a;}

void main(){

int m;

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

cin>>m;

cout<<"它的两倍是"<

long int p;

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

cin>>p;

cout<<"它的两倍是"<

float r;

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

cin>>r;

cout<<"它的两倍是"<

double n;

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

cin>>n;

cout<<"它的两倍是"<

}

实验结果:

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

实验代码:

#include

class complex

{

private:

double real;

double imag;

public:

complex()

{

real=imag=0;

}

complex(double rpart,double ipart)

{

real=rpart;

imag=ipart;

}

complex operator+(const complex &com)

{

complex temp;

temp.real=real+com.real;

temp.imag=imag+com.imag;

return temp;

}

complex operator-(const complex &com)

{

complex temp;

temp.real=real-com.real;

temp.imag=imag-com.imag;

return temp;

}

相关文档
最新文档