设计三个类:几何形状类(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++ 展开
2.Circle以及Rectangle两类都从Shape类公有派生,Circle类的保护成员为半径(radius),Rectangle类的保护成员为长(length)和宽(width);
3.实现Circle类和Rectangle类的拷贝构造函数、带参构造函数、析构函数;
4.给出具体的Circle和Rectangle类的计算面积函数getArea;
5.在main()函数中输出半径为5的圆对象,以及长度为3、宽度为4的矩形对象的面积。
是用C++ 展开
4个回答
展开全部
#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
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 广告
2024-04-09 广告
因设计而领先,因技术而卓越,服务于智能物流、数据驱动、工业制造、新能源运用等各个行业,用完整的产品展示服务和一体化、可视化的解决方案,砥砺深耕,已成为策划创新、视觉设计、制作精工的专业化技术性公司。集策划设计、作品展示、研发中心功能于一体,...
点击进入详情页
本回答由上海微轩模型有限公司提供
展开全部
//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;
}
这个不是很难呀!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
随便回复点什么就OK,哈哈!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
什么时候要?
追问
已经不需要了..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询