问题标题:
定义一个基类圆形Circle类定义一个基类圆形Circle类,它有一个私有数据成员radius和成员函数Area().Area()可以求圆的面积.从Circle类可以派生出圆柱体Cylinder类,它有自己的私有数据成员高度height,
问题描述:
定义一个基类圆形Circle类
定义一个基类圆形Circle类,它有一个私有数据成员radius和成员函数Area().Area()可以求圆的面积.从Circle类可以派生出圆柱体Cylinder类,它有自己的私有数据成员高度height,它也有成员函数Area()来求圆柱体的表面积.分别建立Circle类和Cylinder类的对象,设计一个函数分别求它们的面积,试用虚函数来解决多态问题.
黎海兵回答:
#include"stdio.h"
constdoubleP=3.14;
classCircle{
public:
virtualdoubleArea();
voidR(doubles);
doublegetr();
private:
doubleradius;
};
voidCircle::R(doubler)
{
radius=r;
}
doubleCircle::getr()
{
returnradius;
}
doubleCircle::Area()
{
returnP*radius*radius;
}
classCylinder:publicCircle
{
public:
Cylinder(doubleh1);
doubleR(doubler);
doubleArea();
voidA(Circlecc);
private:
doubleh;
doubles;
};
Cylinder::Cylinder(doubleh1)
{
h=h1;
}
voidCylinder::A(Circlecc)
{
s=cc.Area()+2*P*h*cc.getr();
}
doubleCylinder::Area()
{
returns;
}
voidmain()
{
Circlec;
c.R(1);
printf("圆的面积为:%0.2fn",c.Area());
Cylinderc1(1);
c1.A(c);
printf("圆柱体的面积为:%0.2fn",c1.Area());
}
点击显示
其它推荐