c++高手请进~~

来源:百度知道 编辑:UC知道 时间:2024/06/14 18:58:51
题目一:将运算符“+”、“-”、“*”和“/”重载为适用于复数的加、减、乘、除运算,重载函数作为类Complex的友元函数。
题目二:设计一个基类Figure,其作用是计算一个图形的面积,它只有一个公有的虚函数area。再从Figure类公有派生一个矩形类Rectangle和一个圆类Circle,在类Rectangle和类Circle中分别定义自己的area函数,用于计算各自的面积。在主函数中设计一个Figure类的对象指针,分别指向类Rectangle和类Circle的对象,调用各自的area函数显示相应对象的面积。
【高手们请赐教啊,小弟偶c++没学好啊,作业实在是头大啊,希望高手们帮帮忙啊!小弟偶感激不尽啊!】

#include<iostream.h>

class Complex {
private:
double r,i;

public:
Complex (double R=0,double I=0 ):r(R),i(I){};
friend Complex operator+(Complex a,Complex b);
friend Complex operator-(Complex a,Complex b);
friend Complex operator*(Complex a,Complex b);
friend Complex operator/(Complex a,Complex b);
void display();
};
Complex operator+(Complex a,Complex b)
{
return Complex (a.r+b.r,a.i+b.i);
}

Complex operator-(Complex a,Complex b)
{
return Complex (a.r-b.r,a.i-b.i);
}

Complex operator*(Complex a,Complex b)
{
Complex t;
t.r=a.r*b.r-a.i*b.i;
t.i=a.r*b.i+a.i*b.r;
return t;
}

Complex operator/(Complex a,Complex b)
{
Complex t;
double d;
d=1/(b.r*b.r+b.i*b.i);
t.r=d*(a.r*b.r+a.i*b.i);
t.i=d*(a.i*b.r-a.r*b.i);
return t;
}

void Complex::d