设计三个类:几何形状类(Shape)、圆类(Circle)、矩形类(Rectangle),要求:

1.Shape类具有用来计算面积的公有成员函数getArea;2.Circle以及Rectangle两类都从Shape类公有派生,Circle类的保护成员为半径(radi... 1.Shape类具有用来计算面积的公有成员函数getArea;
2.Circle以及Rectangle两类都从Shape类公有派生,Circle类的保护成员为半径(radius),Rectangle类的保护成员为长(length)和宽(width);
3.实现Circle类和Rectangle类的拷贝构造函数、带参构造函数、析构函数;
4.给出具体的Circle和Rectangle类的计算面积函数getArea;
5.在main()函数中输出半径为5的圆对象,以及长度为3、宽度为4的矩形对象的面积。
是用C++
展开
 我来答
金色潜鸟
2013-06-15 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5732万
展开全部
#include <iostream>
using namespace std;
class Shape
{
public:
virtual float getArea() = 0;
};

class Rectangle : public Shape
{
public:
Rectangle (int w, int l);
virtual float getArea();
~Rectangle();
private:
int width,length;
};

Rectangle::Rectangle (int w,int l) { width = w; length =l; }
float Rectangle::getArea() { return width*length;}

/* Class Circle */
class Circle : public Shape
{
public:
Circle (int r);
virtual float getArea();
~Circle();
private:
int radius;
};
Circle::Circle (int r) { radius = r; }
float Circle::getArea() { return 3.1416*radius*radius;}

int main ()
{
Shape *s[2];
int i;
s[0] = new Rectangle (4,3);
s[1] = new Circle (5);
for (i=0;i<2;i++) cout << "area[" <<i<< "]=" << s[i]->getArea() << endl;
return 0;
}

输出:
area[0]=12
area[1]=78.54
上海微轩模型有限公司
2024-04-09 广告
因设计而领先,因技术而卓越,服务于智能物流、数据驱动、工业制造、新能源运用等各个行业,用完整的产品展示服务和一体化、可视化的解决方案,砥砺深耕,已成为策划创新、视觉设计、制作精工的专业化技术性公司。集策划设计、作品展示、研发中心功能于一体,... 点击进入详情页
本回答由上海微轩模型有限公司提供
_whales
2013-06-14 · TA获得超过2279个赞
知道大有可为答主
回答量:1814
采纳率:85%
帮助的人:509万
展开全部
//shape.cpp
//
//

class Shape{
//int ID;
//enum {idShape=0,idCircle=1,idRectangle=2};
public:
virtual double getArea()=0{return 0;};
//Shap(int ID=0):
virtual ~Shape()=0{};
};

class Circle:public Shape{
public:
virtual double getArea(){return pi * radius * radius;}; 
Circle(double  radius0):radius(radius0){};
~Circle(){};
protected:
double radius;
static const double pi;
};
class Rectangle:public Shape{
public:
virtual double getArea(){return length* width;}; 
Rectangle(double length0=0,double width0=0):length(length0),width(width0){};
~Rectangle(){};
protected:
double length,width;
};

const double Circle::pi=3.14159265358979323846;

#include<iostream>
using namespace std;

int main(){
Shape *sh[2];
sh[0]=new Circle(5);
sh[1]=new Rectangle(3,4);
cout << "半径为5 的圆的面积是"<<sh[0]->getArea()<<endl;
cout<<"长度为3、宽度为4的矩形的面积是"<<sh[1]->getArea()<<endl;
delete sh[0];
delete sh[1];
return 0;
}

这个不是很难呀!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2013-06-14 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:465万
展开全部

随便回复点什么就OK,哈哈!


本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友cd3d6c4
2013-06-14 · TA获得超过315个赞
知道小有建树答主
回答量:262
采纳率:0%
帮助的人:280万
展开全部
什么时候要?
追问
已经不需要了..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式