早教吧作业答案频道 -->其他-->
写一个程序,定义抽象基类shape,派生5个派生类虚函数(一)圆形、和长方形都可以看做是几何图形,定义一个基类shape,再派生出其他两个类。在各个类分别定义各自的计算面积函数area()
题目详情
写一个程序,定义抽象基类shape,派生5个派生类 虚函数
(一)圆形、和长方形都可以看做是几何图形,
定义一个基类shape,再派生出其他两个类。
在各个类分别定义各自的计算面积函数area(),
分别编写以shape对象和指针作为参数的
函数测试各自产生对象的不同面积()。
要求:
shape中没有数据成员;
circle中私有数据成员半径;
rectangle私有数据成员长和宽;
具有数据成员的类,要求编写相应的构造函数、
set和get函数。
(二)
再由圆形和长方形共同派生出圆柱体,
在圆柱体中定义计算圆柱体的面积area(),
通过圆柱体产生的对象观察各个构造函数的调用顺序。
(一)圆形、和长方形都可以看做是几何图形,
定义一个基类shape,再派生出其他两个类。
在各个类分别定义各自的计算面积函数area(),
分别编写以shape对象和指针作为参数的
函数测试各自产生对象的不同面积()。
要求:
shape中没有数据成员;
circle中私有数据成员半径;
rectangle私有数据成员长和宽;
具有数据成员的类,要求编写相应的构造函数、
set和get函数。
(二)
再由圆形和长方形共同派生出圆柱体,
在圆柱体中定义计算圆柱体的面积area(),
通过圆柱体产生的对象观察各个构造函数的调用顺序。
▼优质解答
答案和解析
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 #include
using namespace std;
const float PI = (float)3.14159;
class Shape{
public:
virtual float CalCircumference()=0;
virtual float CalArea()=0;
};
//圆形
class Roundness: public Shape{
public:
Roundness(float r):radius(r)
{}
virtual float CalCircumference()
{
return 2 * PI * radius;
}
virtual float CalArea()
{
return PI * radius * radius;
}
private:
float radius;
};
//正方形
class Square: public Shape{
public:
Square(float w):width(w)
{}
virtual float CalCircumference()
{
return 4 * width;
}
virtual float CalArea()
{
return width * width;
}
private:
float width;
};
//长方形
class Rectangle: public Shape{
public:
Rectangle(float w, float h):width(w), hight(h)
{}
virtual float CalCircumference()
{
return 2 * (width + hight);
}
virtual float CalArea()
{
return hight * width;
}
private:
float width;
float hight;
};
void main()
{
Shape* roud = new Roundness(3);
Shape* squ = new Square(3);
Shape* rang = new Rectangle(3, 4);
cout<CalCircumference()<CalArea()< cout<CalCircumference()<CalArea()< cout<CalCircumference()<CalArea()<
}
using namespace std;
const float PI = (float)3.14159;
class Shape{
public:
virtual float CalCircumference()=0;
virtual float CalArea()=0;
};
//圆形
class Roundness: public Shape{
public:
Roundness(float r):radius(r)
{}
virtual float CalCircumference()
{
return 2 * PI * radius;
}
virtual float CalArea()
{
return PI * radius * radius;
}
private:
float radius;
};
//正方形
class Square: public Shape{
public:
Square(float w):width(w)
{}
virtual float CalCircumference()
{
return 4 * width;
}
virtual float CalArea()
{
return width * width;
}
private:
float width;
};
//长方形
class Rectangle: public Shape{
public:
Rectangle(float w, float h):width(w), hight(h)
{}
virtual float CalCircumference()
{
return 2 * (width + hight);
}
virtual float CalArea()
{
return hight * width;
}
private:
float width;
float hight;
};
void main()
{
Shape* roud = new Roundness(3);
Shape* squ = new Square(3);
Shape* rang = new Rectangle(3, 4);
cout<CalCircumference()<CalArea()<
}
看了写一个程序,定义抽象基类sha...的网友还看了以下:
在C++中,如果派生类的函数与基类的函数同名,参数也完全相同,但基类函数没有virtual关键字,这 2020-05-26 …
初学)C++题目:把定义平面直角坐标系上的一个点的类…把定义平面直角坐标系上的一个点的类CPoin 2020-06-06 …
函数y=IsinxI在[0,0]点可导不?有拐点么?函数Y等于绝对值sinx,其在[0,0]点以及 2020-07-31 …
二、判断题1、一个类的构造函数中可以不包含对其子对象的初始化.()2、派生类是从基二、判断题1、一个 2020-11-22 …
写一个程序,定义抽象基类shape,派生5个派生类虚函数(一)圆形、和长方形都可以看做是几何图形,定 2020-11-22 …
定义一个继承与派生关系的类体系,在派生类中访问基类成员。先定义一个点类,包含x,y坐标数据成员,显示 2020-11-22 …
用C++实现,类的派生实验要求:创建一个基类person类,成员包括:姓名、年龄。要求由person 2020-11-22 …
编写一个程序计算“三角形、正方形、圆形"三种图形的面积,求:a)抽象出一个基类baseb)在其中说明 2020-11-22 …
shape类急.shape类是一个表示形状的抽象类,area()为求图形面积的函数,作为纯虚函数,请 2020-11-22 …
已知函数Y=2sin(2分之1x+p),在它的图像上有一点m(-2分之派,0),答案上代入是2分之1 2020-12-31 …