声明一个shape基类,有计算面积arae()成员函数,由此派生出正方形类(Square)、直角三角形类(Triangle)、圆类(Circle),它们都有arae()成员函数。利用虚函数编程计算正方形、直角三角形和圆的面积之和
参考程序如下:
#include #include
using namespace std;const double PI = 3.1415926;
class Shape{
public:virtual void area( ) =0;
};//圆
class circle:public Shape{
double r;public:
circle(double i):r(i){}void area( )
{ cout << "圆的面积:" << r*r*PI << endl; }};
class Retangle:public Shape{
double a, b, s;public:
Retangle(double x=0,double y=0){
a=x;b=y;
}void area( )
{s = a*b;
cout << "长方形面积:" << s << endl;}
};class Triangle:public Shape
{double a, b, s;
public:Triangle(double i, double j):a(i), b(j){}
void area( ){
s = (a*b)/2;cout << "三角形面积:" << s << endl;
}};
int main( ){
double r, a, b, c, d;cin >> r >> a >> b >> c >> d;
Shape *p;circle c1(r);
p = &c1;p -> area();
Retangle c2(a, b);p = &c2;
p -> area();Triangle c3(c, d);
p = &c3;p -> area();
return 0;}
#include #include
using namespace std;const double PI = 3.1415926;
class Shape{
public:virtual void area( ) =0;
};//圆
class circle:public Shape{
double r;public:
circle(double i):r(i){}void area( )
{ cout << "圆的面积:" << r*r*PI << endl; }};
class Retangle:public Shape{
double a, b, s;public:
Retangle(double x=0,double y=0){
a=x;b=y;
}void area( )
{s = a*b;
cout << "长方形面积:" << s << endl;}
};class Triangle:public Shape
{double a, b, s;
public:Triangle(double i, double j):a(i), b(j){}
void area( ){
s = (a*b)/2;cout << "三角形面积:" << s << endl;
}};
int main( ){
double r, a, b, c, d;cin >> r >> a >> b >> c >> d;
Shape *p;circle c1(r);
p = &c1;p -> area();
Retangle c2(a, b);p = &c2;
p -> area();Triangle c3(c, d);
p = &c3;p -> area();
return 0;}
举一反三
- 定义一个 Shape 基类,在此基础上派生出 Rectangle 和Circle ,二者都有 GetArea() 函数计算对象的面积。使用Rectangle 类创建一个派生类 Square。
- 编写程序定义抽象类Shape,由它派生出5个派生类Circle(圆形)、Square(正方形)、Rectangle(矩形)、Trapezoid(梯形)、Triangle(三角形)。用虚函数分别计算几种图形的面积,并求它们的和。要求:用基类指针数组,使它每一个元素指向一个派生类对象。
- 定义一个 Circle 类,有数据成员半径 Radius ,成员函数GetArea() ,计算圆的面积, 构造一个 Circle 的对象进行测试。
- 定义一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积。通过屏幕提示请用户选择输入矩形长、宽,或者圆的半径,程序算出面积后输出到屏幕。
- 定义一个圆类Circle,属性为半径、圆周长河面积,操作为输入半径并计算周长、面积,输出半径、周长和面积。编写一个main函数,演示Circle类的性能(也就是用对象调用成员函数)
内容
- 0
定义一个Shape基类,在此基础上派生出Rectangle和Circle类,二者都有GetArea()函数计算对象的面积。通过屏幕提示请用户选择输入矩形长、宽,或者圆的半径,程序算出面积后输出到屏幕。 A: 正确 B: 错误
- 1
使用虚函数编写程序求球体和圆柱的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类 circle 作为基类。在circle 类中定义一个数据成员 radius 和两个虚函数 area() 和 volume (). 由 circle 类派生 sphere类和 column 类。在派生类对虚函数area()和volume () 重新定义,分别求球体和圆柱体的体积及表面积。
- 2
如果把正方行形与三角形一个隔一个地排成一行,正方形有20个,三角最少有几个
- 3
幼儿对不同几何图形辨别的难度由易到难是? 三角形一圆形一正方形|圆形一三角形一正方形|正方形—圆形—三角形|圆形一正方形一三角形
- 4
定义一个shape抽象类,派生出Rectangle类和Circle类,计算各派生类对象的面积Area().