C语言的一个编程题,求救

声明一个rectangle类,包括数据成员l(长)和w(宽),求周长的函数成员getcir()类和求面积的函数成员getArea()。要求实现根据用户键盘输入的l和w值实例化一个rectangle类的对象,求出其周长和面积的输出。

第1个回答  2011-12-08
#include <iostream>
using namespace std;

class Shape
{
public:
virtual float getArea()=0;//定义为纯虚函数,带有纯虚函数的类是抽象类
virtual float getPerim()=0;/*抽象类的作用:通过它为一个类族建立一个公共的接口,使它们能够更有效地发挥多态性
声明为纯虚函数之后,基类中就可以不再给出函数的实现部分,纯虚函数的函数体由派生类给出*/

protected://声明为私有成员,则在派生类中无法使用
int x;
int y;
float radius;
};

class Rectangle:public Shape
{
public:
Rectangle(int xx,int yy);
float getArea()
{
return x*y;
}
float getPerim()
{
return 2*x+2*y;
}

};
Rectangle::Rectangle(int xx,int yy)
{
x=xx;
y=yy;
}

class Circle:public Shape
{
public:
Circle(float r);
float getArea()
{
return 3*radius*radius;
}
float getPerim()
{
return 2*3*radius;
}
};
Circle::Circle(float r)
{
radius=r;
}

int main()
{
Shape *p;//抽象类不能实例化,即不能定义一个抽象类的对象,但是可以定义一个抽象类的指针和引用,通过指针或引用,就可以指向并访问派生类对象,进而访问派生类的成员,这种访问时具有多态性特征的
p=new Rectangle(10,20);
cout<<"矩形面积:"<<p->getArea()<<endl;
cout<<"矩形周长:"<<p->getPerim()<<endl;
delete p;
p=new Circle(5);
cout<<"圆形面积:"<<p->getArea()<<endl;
cout<<"圆形周长:"<<p->getPerim()<<endl;
delete p;
return 0;
}
第2个回答  2011-12-08
#include <iostream>
using namespace std;
class rectangle
{
public:
rectangle(double L, double W):l(L),w(W){}
double getCir();
double getArea();
private:
double l;
double w;
};

double rectangle::getCir()
{
return 2 * (l + w);
}

double rectangle::getArea()
{
return l * w;
}

void main()
{
double l, w;
cout << "长:";
cin >> l;
cout << "宽:";
cin >> w;
rectangle r(l, w);
cout << "周长:" << r.getCir() << endl;
cout << "面积:" << r.getArea() << endl;
}本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网